浏览代码

Updated Project to 2019.4 / Samples Package to 7.4.1 / Rebuilt VFX

/main
Thomas ICHÉ 4 年前
当前提交
583f3361
共有 48 个文件被更改,包括 7353 次插入5764 次删除
  1. 1
      .gitignore
  2. 664
      Assets/Samples/ARRadar/ARRadar.vfx
  3. 890
      Assets/Samples/BonFire/VFX/BonFire.vfx
  4. 372
      Assets/Samples/BonFire/VFX/Clouds.vfx
  5. 861
      Assets/Samples/BonFire/VFX/FlyingLeaves.vfx
  6. 798
      Assets/Samples/Butterflies/Butterflies.vfx
  7. 199
      Assets/Samples/EllenHologram/EllenHologram.vfx
  8. 658
      Assets/Samples/GenieMagicLamp/VFX/GenieFX.vfx
  9. 243
      Assets/Samples/GenieMagicLamp/VFX/SandFX.vfx
  10. 184
      Assets/Samples/GrassWind/Environment_GrassWind.vfx
  11. 508
      Assets/Samples/GrassWind/Grass.vfx
  12. 808
      Assets/Samples/MagicBook/VFX/Book.vfx
  13. 384
      Assets/Samples/MagicBook/VFX/Chain.vfx
  14. 108
      Assets/Samples/MagicBook/VFX/FireEmbers.vfx
  15. 732
      Assets/Samples/MagicBook/VFX/FloatingRock.vfx
  16. 99
      Assets/Samples/MagicBook/VFX/JacobsLadder.vfx
  17. 351
      Assets/Samples/MagicBook/VFX/Liquid.vfx
  18. 762
      Assets/Samples/MagicBook/VFX/Smoke.vfx
  19. 353
      Assets/Samples/MagicBook/VFX/Trails.vfx
  20. 277
      Assets/Samples/MorphingFace/MorphingFace.vfx
  21. 174
      Assets/Samples/Portal/Portal.vfx
  22. 389
      Assets/Samples/RibbonPack/RibbonPack.vfx
  23. 862
      Assets/Samples/SpaceshipHoloTable/VFX/ARUI-Table-PinScreen.vfx
  24. 272
      Assets/Samples/UnityLogo/UnityLogo.vfx
  25. 572
      Assets/Samples/Volumetric/Volumetric.vfx
  26. 373
      Assets/Samples/VoxelizedTerrain/VoxelizedTerrain.vfx
  27. 4
      ProjectSettings/ProjectVersion.txt
  28. 206
      Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/VFX/Flames.vfx
  29. 186
      Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/VFX/Smoke.vfx
  30. 118
      Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/VFX/Sparks.vfx
  31. 384
      Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/VFX/Bonfire.vfx
  32. 301
      Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/VFX/Lightning.vfx
  33. 8
      Assets/Samples/Visual Effect Graph/7.4.1.meta
  34. 8
      Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions.meta
  35. 8
      Assets/Samples/Visual Effect Graph/7.1.6.meta
  36. 0
      /Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions
  37. 0
      /Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/Flame02-temperature_16x5_ldr.png
  38. 0
      /Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/Flame02-temperature_16x5_ldr.png.meta
  39. 0
      /Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/Flame03-hollow-temperature_16x5.png
  40. 0
      /Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/Flame03-hollow-temperature_16x5.png.meta
  41. 0
      /Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/SmallFlame01-mini_15x4.png
  42. 0
      /Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/SmallFlame01-mini_15x4.png.meta
  43. 0
      /Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/SmallFlame01-smaller-temperature_15x4.png
  44. 0
      /Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/SmallFlame01-smaller-temperature_15x4.png.meta
  45. 0
      /Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/SmallFlame01_15x4.png
  46. 0
      /Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/SmallFlame01_15x4.png.meta

1
.gitignore


*.apk
*.unitypackage
Logs
Packages/packages-lock.json

664
Assets/Samples/ARRadar/ARRadar.vfx
文件差异内容过多而无法显示
查看文件

890
Assets/Samples/BonFire/VFX/BonFire.vfx
文件差异内容过多而无法显示
查看文件

372
Assets/Samples/BonFire/VFX/Clouds.vfx


VFX_USE_SCALEZ_CURRENT 1\n#define VFX_USE_PARTICLEID_CURRENT 1\n#define VFX_USE_VELOCITY_CURRENT
1\n#define VFX_USE_SIZE_CURRENT 1\n#define VFX_USE_AGE_CURRENT 1\n#define VFX_USE_ALPHA_CURRENT
1\n#define VFX_USE_ALIVE_CURRENT 1\n#define VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float uniform_b;\n uint3 PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n
float uniform_a;\n uint3 PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n
float3 position;\n uint seed;\n float3 direction;\n float angleX;\n
float angleY;\n float angleZ;\n float lifetime;\n float scaleX;\n
float scaleY;\n float scaleZ;\n uint particleId;\n float3 velocity;\n

SetAttribute_D5151642(inout float scaleX, inout float scaleY, inout float scaleZ,
float3 Scale) /*attribute:scale Composition:Overwrite Source:Slot Random:Off
channels:XYZ */\n{\n scaleX = Scale.x;\n scaleY = Scale.y;\n scaleZ
= Scale.z;\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint
= Scale.z;\n}\n\n\r\n\r\n// Due to a bug in HLSL compiler, disable spurious
\"unitialized variable\" due to mid function return statement\r\n#pragma warning(push)\r\n#pragma
warning(disable : 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

/*inout */attributes.angleZ, /*inout */attributes.seed, float3(-20, -20, -20),
float3(20, 20, 20));\n }\n {\n SetAttribute_F01429A3(
/*inout */attributes.lifetime, /*inout */attributes.seed, (float)160, (float)300);\n
}\n {\n uint tmp_ba = attributes.particleId ^ asuint(uniform_b);\n
}\n {\n uint tmp_ba = attributes.particleId ^ asuint(uniform_a);\n
float tmp_bb = FixedRand(tmp_ba);\n float tmp_bd = tmp_bb * (float)90;\n
float tmp_be = (float)10 + tmp_bd;\n float3 tmp_bf = float3(tmp_be,
tmp_be, tmp_be);\n SetAttribute_D5151642( /*inout */attributes.scaleX,

name: '[System 1]Base Cloud'
source: "Shader \"Hidden/VFX/Clouds/System 1/Base Cloud\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tTags
{ \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\" \"RenderType\"=\"Transparent\"
}\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
}\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
One OneMinusSrcAlpha \n\t\tZTest LEqual\n\t\tZWrite On\n\t\tCull Back\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

VFX_BLENDMODE_ALPHA 1\n\t\t#define VFX_HAS_INDIRECT_DRAW 1\n\t\t#define HDRP_LIT
1\n\t\t#define HDRP_MATERIAL_TYPE_TRANSLUCENT 1\n\t\t#define HDRP_USE_BASE_COLOR_MAP
1\n\t\t#define HDRP_USE_BASE_COLOR_MAP_COLOR 1\n\t\t#define HDRP_USE_BASE_COLOR_MAP_ALPHA
1\n\t\t#define HDRP_USE_BASE_COLOR 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
1\n\t\t#define HDRP_USE_BASE_COLOR 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_LOCAL_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float3 position;\n\t\t float angleX;\n\t\t
float angleY;\n\t\t float angleZ;\n\t\t float scaleX;\n\t\t float

pivotZ;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
baseColorMap;\n\t\tSamplerState samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
baseColorMap;\n\t\tSamplerState samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

instanceID : SV_InstanceID;\n\t\t\t#define VFX_GET_INSTANCE_ID(i) i.instanceID\n\t\t#endif\n\t\t\n\t\tENDHLSL\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
{ \"LightMode\"=\"SceneSelectionPass\" }\n\t\t\n\t\t\tZWrite On\n\t\t\tBlend
Off\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#define VFX_PASSDEPTH VFX_PASSDEPTH_SELECTION\n\t\t\t\n\t\t\t#pragma
target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t#pragma multi_compile _
WRITE_NORMAL_BUFFER\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\t\t\n\t\t\t\tfloat4
target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\t\t\n\t\t\t\tfloat4
pos : SV_POSITION;\n\t\t\t\tfloat2 uv : TEXCOORD0;\t\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV1\n\t\t\t
float4 uv1 : COLOR2;\n\t\t\t #endif\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV2\n\t\t\t
float4 uv2 : COLOR3;\n\t\t\t #endif\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV3\n\t\t\t

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\n\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t\t{\n\t\t\t\t
\n\t\t\t\t diffusionProfileHash = (uint)1080650646;\n\t\t\t\t}\n\t\t\t\t\n
// Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\n\t\t\t\tfloat
alpha;\n\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\n\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t //TODO: investigate why this is needed\n\t\t\t preLightData.coatPartLambdaV
= 0;\n\t\t\t preLightData.coatIblR = 0;\n\t\t\t preLightData.coatIblF
= 0;\n\t\t\t \n\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t}\n\t\t\t\n\t\t\tvoid
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t#define SHADERPASS
SHADERPASS_MOTION_VECTORS\n\t\t\t\t\t#else\n\t\t\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\tvoid VFXGetHDRPLitData(out SurfaceData
surfaceData, out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData
preLightData, VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData,
uint2 tileIndex)\n\t\t\t\t\t{\t\n\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t\tuint
diffusionProfileHash = (uint)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t
diffusionProfileHash = (uint)1080650646;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t
// Loads diffusion profile\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha;\n\t\t\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\t\t\n\t\t\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\t\t\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t //TODO: investigate why this is needed\n\t\t\t\t\t
preLightData.coatPartLambdaV = 0;\n\t\t\t\t\t preLightData.coatIblR = 0;\n\t\t\t\t\t
preLightData.coatIblF = 0;\n\t\t\t\t\t \n\t\t\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvoid
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t{\n\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t}\n\t\t\t\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tvoid frag(ps_input i\n\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t,
bool frontFace : SV_IsFrontFace\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t, out float4 outMotionVector : SV_Target0\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target1\n\t\t\t\t#endif\n\t\t\t#else\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t, out float4 outColor :
SV_Target0\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t\t)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
normalWS = normalize(i.VFX_VARYING_NORMAL * faceMul);\n\t\t\t\t\t\t\tconst
VFXUVData uvData = GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
tangentWS = normalize(i.VFX_VARYING_TANGENT.xyz);\n\t\t\t\t\t\t\tfloat3 bitangentWS
= cross(normalWS,tangentWS) * (i.VFX_VARYING_TANGENT.w * faceMul);\n\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t\t\n\t\t\t float
alpha = OUTSG.;\n\t\t\t #else\n\t\t\t\tfloat alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t#if
HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\talpha *= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t#endif\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t
#ifndef VFX_SHADERGRAPH\n\t\t\t VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t
#else\n\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t normalWS = mul(n,tbn);\n\t\t\t
#endif\n\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t
\n\t\t\t surface.normalWS = normalWS;\n\t\t\t \n\t\t\t
EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface), i.VFX_VARYING_POSCS.xy,
outNormalBuffer);\n\t\t\t #endif\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t\t\t{\n\t\t\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t, bool frontFace
: SV_IsFrontFace\n\t\t\t\t\t#endif\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t// We need the depth color as SV_Target0 for
alpha to coverage\n\t\t\t\t\t\t, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t,
out float4 outMotionVector : SV_Target1\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target2\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t//
When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t\t, out
float4 outMotionVector : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t//
We need the depth color as SV_Target0 for alpha to coverage\n\t\t\t\t\t\t,
out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#elif
defined(WRITE_NORMAL_BUFFER)\n\t\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outColor
: SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3
normalWS = normalize(i.VFX_VARYING_NORMAL * faceMul);\n\t\t\t\t\t\t\t\t\tconst
VFXUVData uvData = GetUVData(i);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_TANGENT\n\t\t\t\t\t\t\t\t\tfloat3 tangentWS = normalize(i.VFX_VARYING_TANGENT.xyz);\n\t\t\t\t\t\t\t\t\tfloat3
bitangentWS = cross(normalWS,tangentWS) * (i.VFX_VARYING_TANGENT.w * faceMul);\n\t\t\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t\t\t
#else\n\t\t\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t\t\t normalWS = mul(n,tbn);\n\t\t\t\t\t
#endif\n\t\t\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t\t\t
surface.normalWS = normalWS;\n\t\t\t\t\t EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface),
i.VFX_VARYING_POSCS.xy, outNormalBuffer);\n\t\t\t\t\t #endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\toutMotionVector = encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t// We use depth prepass
for scene selection in the editor, this code allow to output the outline correctly\n\t\t\t\t\toutColor
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH ==
VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t//void\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH
undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\t//
We use depth prepass for scene selection in the editor, this code allow to
output the outline correctly\n\t\t\t\t\t\t\toutColor = float4(_ObjectId, _PassValue,
1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t//void\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined\n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
{ \"LightMode\"=\"Forward\"}\n\t\t\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma
target 4.5\n\t\t\t\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t#define LIGHTLOOP_TILE_PASS\n\t\t\t#define
_ENABLE_FOG_ON_TRANSPARENT\n\t\t\t#define _DISABLE_DECALS\n\t\t\t#define _BLENDMODE_ALPHA\n\t\t\t\n\n\t\t\t#pragma

VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t\t{\n\t\t\t\t
\n\t\t\t\t diffusionProfileHash = (uint)1080650646;\n\t\t\t\t}\n\t\t\t\t\n
// Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t{\n\t\t\t
\n\t\t\t diffusionProfileHash = (uint)1080650646;\n\t\t\t}\n\t\t\t\n //
Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\n\t\t\t\tfloat

name: '[System 1]Rims'
source: "Shader \"Hidden/VFX/Clouds/System 1/Rims\"\n{\r\n\tSubShader\r\n\t{\r\n\t\tTags
{ \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\" \"RenderType\"=\"Transparent\"
}\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
}\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
SrcAlpha One \n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Back\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

VFX_BLENDMODE_ADD 1\n\t\t#define VFX_BYPASS_EXPOSURE 1\n\t\t#define VFX_SHADERGRAPH
1\n\t\t#define HAS_SHADERGRAPH_PARAM_COLOR 1\n\t\t#define HAS_SHADERGRAPH_PARAM_ALPHA
1\n\t\t#define SHADERGRAPH_NEEDS_NORMAL_FORWARD 1\n\t\t#define SHADERGRAPH_NEEDS_NORMAL_DEPTHONLY
1\n\t\t#define VFX_NEEDS_POSWS_INTERPOLATOR 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
1\n\t\t#define VFX_NEEDS_POSWS_INTERPOLATOR 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_LOCAL_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
float3 CameraPosition;\n\t\t uint PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float3 position;\n\t\t float angleX;\n\t\t

uv\n\t\t\t\n\t\t\t#if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t#define VFX_VARYING_POSWS
posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if IS_MOTION_VECTORS_PASS\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\t\n\t\t\t\n\t\t\tstruct

}\n\t\t\t o.Back_Color = Back_Color__;float Alpha_Attribute__ = (float)0;{\n\t\t\t
Alpha_Attribute__ = attributes.alpha;\n\t\t\t }\n\t\t\t o.Alpha_Attribute
= Alpha_Attribute__;\n\n\t\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl\"\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/EntityLighting.hlsl\"\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl\"\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinGIUtilities.hlsl\"\n\t\t\t\t\t#ifndef
SHADERPASS\n\t\t\t\t\t#error Shaderpass should be defined at this stage.\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl\"\n\t\t\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.shadergraph/ShaderGraphLibrary/Functions.hlsl\"\n\t\t\t//
Node: Normalize\n\t\t\tvoid Unity_Normalize_float3(float3 In, out float3 Out)\n\t\t\t{\n\t\t\t
Out = normalize(In);\n\t\t\t}\n\t\t\t\n\t\t\t// Node: Dot Product\n\t\t\tvoid
Unity_DotProduct_float3(float3 A, float3 B, out float Out)\n\t\t\t{\n\t\t\t
Out = dot(A, B);\n\t\t\t}\n\t\t\t\n\t\t\t// Node: Remap\n\t\t\tvoid Unity_Remap_float(float
In, float2 InMinMax, float2 OutMinMax, out float Out)\n\t\t\t{\n\t\t\t Out
= OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y
- InMinMax.x);\n\t\t\t}\n\t\t\t\n\t\t\t// Node: Subtract\n\t\t\tvoid Unity_Subtract_float3(float3
A, float3 B, out float3 Out)\n\t\t\t{\n\t\t\t Out = A - B;\n\t\t\t}\n\t\t\t\n\t\t\t//
Node: Saturate\n\t\t\tvoid Unity_Saturate_float(float In, out float Out)\n\t\t\t{\n\t\t\t
Out = saturate(In);\n\t\t\t}\n\t\t\t\n\t\t\t// Node: One Minus\n\t\t\tvoid
Unity_OneMinus_float(float In, out float Out)\n\t\t\t{\n\t\t\t Out = 1 -
In;\n\t\t\t}\n\t\t\t\n\t\t\t// Node: Multiply\n\t\t\tvoid Unity_Multiply_float(float
A, float B, out float Out)\n\t\t\t{\n\t\t\t Out = A * B;\n\t\t\t}\n\t\t\t\n\t\t\t//
Node: Power\n\t\t\tvoid Unity_Power_float(float A, float B, out float Out)\n\t\t\t{\n\t\t\t
Out = pow(A, B);\n\t\t\t}\n\t\t\t\n\t\t\tstruct SG_Input_b2a4ee630d2043d44906908a3703ad7d\n\t\t\t{\n\t\t\t
float3 WorldSpaceNormal;\n\t\t\t float3 AbsoluteWorldSpacePosition;\n\t\t\t};\n\t\t\t\n\t\t\tstruct
SG_Output_b2a4ee630d2043d44906908a3703ad7d\n\t\t\t{\n\t\t\t float Alpha_4;\n\t\t\t};\n\t\t\t\n\t\t\tSG_Output_b2a4ee630d2043d44906908a3703ad7d
SG_Evaluate_b2a4ee630d2043d44906908a3703ad7d(\n\t\t\t SG_Input_b2a4ee630d2043d44906908a3703ad7d
IN,\n\t\t\t /* Property: CameraPosition */ float3 CameraPosition,\n\t\t\t
/* Property: LightDirection */ float3 LightDirection,\n\t\t\t /* Property:
Exponent */ float Exponent,\n\t\t\t /* Property: Alpha Attribute */ float
Alpha_Attribute)\n\t\t\t{\n\t\t\t // Node: Property\n\t\t\t float3 _Property_3DECF52E_Out_0
= LightDirection;\n\t\t\t\n\t\t\t // Node: Normalize\n\t\t\t float3 _Normalize_30F2AD7D_Out_1;\n\t\t\t
Unity_Normalize_float3(_Property_3DECF52E_Out_0, _Normalize_30F2AD7D_Out_1);\n\t\t\t\n\t\t\t
// Node: Dot Product\n\t\t\t float _DotProduct_F4AB749D_Out_2;\n\t\t\t
Unity_DotProduct_float3(_Normalize_30F2AD7D_Out_1, IN.WorldSpaceNormal, _DotProduct_F4AB749D_Out_2);\n\t\t\t\n\t\t\t
// Node: Remap\n\t\t\t float _Remap_7D299BA3_Out_3;\n\t\t\t Unity_Remap_float(_DotProduct_F4AB749D_Out_2,
float2 (-1, 1), float2 (0, 1), _Remap_7D299BA3_Out_3);\n\t\t\t\n\t\t\t //
Node: Property\n\t\t\t float3 _Property_415D0560_Out_0 = CameraPosition;\n\t\t\t\n\t\t\t
// Node: Subtract\n\t\t\t float3 _Subtract_6A9B682F_Out_2;\n\t\t\t Unity_Subtract_float3(_Property_415D0560_Out_0,
IN.AbsoluteWorldSpacePosition, _Subtract_6A9B682F_Out_2);\n\t\t\t\n\t\t\t
// Node: Normalize\n\t\t\t float3 _Normalize_96726F41_Out_1;\n\t\t\t
Unity_Normalize_float3(_Subtract_6A9B682F_Out_2, _Normalize_96726F41_Out_1);\n\t\t\t\n\t\t\t
// Node: Dot Product\n\t\t\t float _DotProduct_3F21F7DB_Out_2;\n\t\t\t
Unity_DotProduct_float3(_Normalize_96726F41_Out_1, IN.WorldSpaceNormal, _DotProduct_3F21F7DB_Out_2);\n\t\t\t\n\t\t\t
// Node: Saturate\n\t\t\t float _Saturate_14FD1353_Out_1;\n\t\t\t Unity_Saturate_float(_DotProduct_3F21F7DB_Out_2,
_Saturate_14FD1353_Out_1);\n\t\t\t\n\t\t\t // Node: One Minus\n\t\t\t
float _OneMinus_5FA96C37_Out_1;\n\t\t\t Unity_OneMinus_float(_Saturate_14FD1353_Out_1,
_OneMinus_5FA96C37_Out_1);\n\t\t\t\n\t\t\t // Node: Multiply\n\t\t\t
float _Multiply_E5F92B2_Out_2;\n\t\t\t Unity_Multiply_float(_Remap_7D299BA3_Out_3,
_OneMinus_5FA96C37_Out_1, _Multiply_E5F92B2_Out_2);\n\t\t\t\n\t\t\t // Node:
Property\n\t\t\t float _Property_7D7A603C_Out_0 = Exponent;\n\t\t\t\n\t\t\t
// Node: Power\n\t\t\t float _Power_882C7CA8_Out_2;\n\t\t\t Unity_Power_float(_Multiply_E5F92B2_Out_2,
_Property_7D7A603C_Out_0, _Power_882C7CA8_Out_2);\n\t\t\t\n\t\t\t // Node:
Property\n\t\t\t float _Property_3FE01CD6_Out_0 = Alpha_Attribute;\n\t\t\t\n\t\t\t
// Node: Multiply\n\t\t\t float _Multiply_2B5B0675_Out_2;\n\t\t\t Unity_Multiply_float(_Power_882C7CA8_Out_2,
_Property_3FE01CD6_Out_0, _Multiply_2B5B0675_Out_2);\n\t\t\t\n\t\t\t //
Visual Effect Master\n\t\t\t SG_Output_b2a4ee630d2043d44906908a3703ad7d
OUT;\n\t\t\t OUT.Alpha_4 = _Multiply_2B5B0675_Out_2;\n\t\t\t return OUT;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t float3 LightDirection = i.LightDirection;float
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl\"\n\t\t\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Packing.hlsl\"\n\t\t\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl\"\n\t\t\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/EntityLighting.hlsl\"\n\t\t\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinGIUtilities.hlsl\"\n\t\t\t\t\t\t\t#ifndef
SHADERPASS\n\t\t\t\t\t\t\t#error Shaderpass should be defined at this stage.\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl\"\n\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.shadergraph/ShaderGraphLibrary/Functions.hlsl\"\n\t\t\t\t\t//
Node: Normalize\n\t\t\t\t\tvoid Unity_Normalize_float3(float3 In, out float3
Out)\n\t\t\t\t\t{\n\t\t\t\t\t Out = normalize(In);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t//
Node: Dot Product\n\t\t\t\t\tvoid Unity_DotProduct_float3(float3 A, float3
B, out float Out)\n\t\t\t\t\t{\n\t\t\t\t\t Out = dot(A, B);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t//
Node: Remap\n\t\t\t\t\tvoid Unity_Remap_float(float In, float2 InMinMax, float2
OutMinMax, out float Out)\n\t\t\t\t\t{\n\t\t\t\t\t Out = OutMinMax.x + (In
- InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t//
Node: Subtract\n\t\t\t\t\tvoid Unity_Subtract_float3(float3 A, float3 B, out
float3 Out)\n\t\t\t\t\t{\n\t\t\t\t\t Out = A - B;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t//
Node: Saturate\n\t\t\t\t\tvoid Unity_Saturate_float(float In, out float Out)\n\t\t\t\t\t{\n\t\t\t\t\t
Out = saturate(In);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t// Node: One Minus\n\t\t\t\t\tvoid
Unity_OneMinus_float(float In, out float Out)\n\t\t\t\t\t{\n\t\t\t\t\t Out
= 1 - In;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t// Node: Multiply\n\t\t\t\t\tvoid
Unity_Multiply_float(float A, float B, out float Out)\n\t\t\t\t\t{\n\t\t\t\t\t
Out = A * B;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t// Node: Power\n\t\t\t\t\tvoid
Unity_Power_float(float A, float B, out float Out)\n\t\t\t\t\t{\n\t\t\t\t\t
Out = pow(A, B);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tstruct SG_Input_b2a4ee630d2043d44906908a3703ad7d\n\t\t\t\t\t{\n\t\t\t\t\t
float3 WorldSpaceNormal;\n\t\t\t\t\t float3 AbsoluteWorldSpacePosition;\n\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\tstruct
SG_Output_b2a4ee630d2043d44906908a3703ad7d\n\t\t\t\t\t{\n\t\t\t\t\t float
Alpha_4;\n\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\tSG_Output_b2a4ee630d2043d44906908a3703ad7d
SG_Evaluate_b2a4ee630d2043d44906908a3703ad7d(\n\t\t\t\t\t SG_Input_b2a4ee630d2043d44906908a3703ad7d
IN,\n\t\t\t\t\t /* Property: CameraPosition */ float3 CameraPosition,\n\t\t\t\t\t
/* Property: LightDirection */ float3 LightDirection,\n\t\t\t\t\t /* Property:
Exponent */ float Exponent,\n\t\t\t\t\t /* Property: Alpha Attribute */
float Alpha_Attribute)\n\t\t\t\t\t{\n\t\t\t\t\t // Node: Property\n\t\t\t\t\t
float3 _Property_3DECF52E_Out_0 = LightDirection;\n\t\t\t\t\t\n\t\t\t\t\t
// Node: Normalize\n\t\t\t\t\t float3 _Normalize_30F2AD7D_Out_1;\n\t\t\t\t\t
Unity_Normalize_float3(_Property_3DECF52E_Out_0, _Normalize_30F2AD7D_Out_1);\n\t\t\t\t\t\n\t\t\t\t\t
// Node: Dot Product\n\t\t\t\t\t float _DotProduct_F4AB749D_Out_2;\n\t\t\t\t\t
Unity_DotProduct_float3(_Normalize_30F2AD7D_Out_1, IN.WorldSpaceNormal, _DotProduct_F4AB749D_Out_2);\n\t\t\t\t\t\n\t\t\t\t\t
// Node: Remap\n\t\t\t\t\t float _Remap_7D299BA3_Out_3;\n\t\t\t\t\t Unity_Remap_float(_DotProduct_F4AB749D_Out_2,
float2 (-1, 1), float2 (0, 1), _Remap_7D299BA3_Out_3);\n\t\t\t\t\t\n\t\t\t\t\t
// Node: Property\n\t\t\t\t\t float3 _Property_415D0560_Out_0 = CameraPosition;\n\t\t\t\t\t\n\t\t\t\t\t
// Node: Subtract\n\t\t\t\t\t float3 _Subtract_6A9B682F_Out_2;\n\t\t\t\t\t
Unity_Subtract_float3(_Property_415D0560_Out_0, IN.AbsoluteWorldSpacePosition,
_Subtract_6A9B682F_Out_2);\n\t\t\t\t\t\n\t\t\t\t\t // Node: Normalize\n\t\t\t\t\t
float3 _Normalize_96726F41_Out_1;\n\t\t\t\t\t Unity_Normalize_float3(_Subtract_6A9B682F_Out_2,
_Normalize_96726F41_Out_1);\n\t\t\t\t\t\n\t\t\t\t\t // Node: Dot Product\n\t\t\t\t\t
float _DotProduct_3F21F7DB_Out_2;\n\t\t\t\t\t Unity_DotProduct_float3(_Normalize_96726F41_Out_1,
IN.WorldSpaceNormal, _DotProduct_3F21F7DB_Out_2);\n\t\t\t\t\t\n\t\t\t\t\t
// Node: Saturate\n\t\t\t\t\t float _Saturate_14FD1353_Out_1;\n\t\t\t\t\t
Unity_Saturate_float(_DotProduct_3F21F7DB_Out_2, _Saturate_14FD1353_Out_1);\n\t\t\t\t\t\n\t\t\t\t\t
// Node: One Minus\n\t\t\t\t\t float _OneMinus_5FA96C37_Out_1;\n\t\t\t\t\t
Unity_OneMinus_float(_Saturate_14FD1353_Out_1, _OneMinus_5FA96C37_Out_1);\n\t\t\t\t\t\n\t\t\t\t\t
// Node: Multiply\n\t\t\t\t\t float _Multiply_E5F92B2_Out_2;\n\t\t\t\t\t
Unity_Multiply_float(_Remap_7D299BA3_Out_3, _OneMinus_5FA96C37_Out_1, _Multiply_E5F92B2_Out_2);\n\t\t\t\t\t\n\t\t\t\t\t
// Node: Property\n\t\t\t\t\t float _Property_7D7A603C_Out_0 = Exponent;\n\t\t\t\t\t\n\t\t\t\t\t
// Node: Power\n\t\t\t\t\t float _Power_882C7CA8_Out_2;\n\t\t\t\t\t Unity_Power_float(_Multiply_E5F92B2_Out_2,
_Property_7D7A603C_Out_0, _Power_882C7CA8_Out_2);\n\t\t\t\t\t\n\t\t\t\t\t
// Node: Property\n\t\t\t\t\t float _Property_3FE01CD6_Out_0 = Alpha_Attribute;\n\t\t\t\t\t\n\t\t\t\t\t
// Node: Multiply\n\t\t\t\t\t float _Multiply_2B5B0675_Out_2;\n\t\t\t\t\t
Unity_Multiply_float(_Power_882C7CA8_Out_2, _Property_3FE01CD6_Out_0, _Multiply_2B5B0675_Out_2);\n\t\t\t\t\t\n\t\t\t\t\t
// Visual Effect Master\n\t\t\t\t\t SG_Output_b2a4ee630d2043d44906908a3703ad7d
OUT;\n\t\t\t\t\t OUT.Alpha_4 = _Multiply_2B5B0675_Out_2;\n\t\t\t\t\t
return OUT;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t float3 LightDirection = i.LightDirection;float
= i.Back_Color;float Alpha_Attribute = i.Alpha_Attribute;\n\t\t\t //Call
Shader Graph\n\t\t\t SG_Input_b2a4ee630d2043d44906908a3703ad7d INSG
= (SG_Input_b2a4ee630d2043d44906908a3703ad7d)0;\n\t\t\t float3 WorldSpaceNormal
= normalize(normalWS.xyz);\n\t\t\t INSG.WorldSpaceNormal = WorldSpaceNormal;\n\t\t\t
float3 posRelativeWS = VFXGetPositionRWS(i.VFX_VARYING_POSWS);\n\t\t\t
float3 posAbsoluteWS = VFXGetPositionAWS(i.VFX_VARYING_POSWS);\n\t\t\t
INSG.AbsoluteWorldSpacePosition = posAbsoluteWS;\n\t\t\t \n\t\t\t
= i.Back_Color;float Alpha_Attribute = i.Alpha_Attribute;\n\t\t\t\t\t
//Call Shader Graph\n\t\t\t\t\t SG_Input_b2a4ee630d2043d44906908a3703ad7d
INSG = (SG_Input_b2a4ee630d2043d44906908a3703ad7d)0;\n\t\t\t\t\t float3
WorldSpaceNormal = normalize(normalWS.xyz);\n\t\t\t\t\t INSG.WorldSpaceNormal
= WorldSpaceNormal;\n\t\t\t\t\t float3 posRelativeWS = VFXGetPositionRWS(i.VFX_VARYING_POSWS);\n\t\t\t\t\t
float3 posAbsoluteWS = VFXGetPositionAWS(i.VFX_VARYING_POSWS);\n\t\t\t\t\t
INSG.AbsoluteWorldSpacePosition = posAbsoluteWS;\n\t\t\t\t\t \n\t\t\t\t\t
LightDirection, Exponent, Alpha_Attribute);\n\t\t\t \n\n\t\t\t
\n\t\t\t float alpha = OUTSG.Alpha_4;\n\t\t\t #else\n\t\t\t
float alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\t\t\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
LightDirection, Exponent, Alpha_Attribute);\n\t\t\t\t\t \n\t\t\t\n\t\t\t\t\t
float alpha = OUTSG.Alpha_4;\n\t\t\t\t\t #else\n\t\t\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos

= Alpha_Attribute__;\n\n\t\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl\"\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Packing.hlsl\"\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl\"\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl\"\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinGIUtilities.hlsl\"\n\t\t\t\t\t#ifndef
SHADERPASS\n\t\t\t\t\t#error Shaderpass should be defined at this stage.\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl\"\n\t\t\t\t\t\n\t\t\t\n\t\t\t#include

index: 1
temporaryBuffers: []
values:
- nameId: uniform_b
- nameId: uniform_a
index: 2
params:
- nameId: bounds_center

861
Assets/Samples/BonFire/VFX/FlyingLeaves.vfx


= lerp(A.x,B.x,RAND);\n angularVelocityY = lerp(A.y,B.y,RAND);\n angularVelocityZ
= lerp(A.z,B.z,RAND);\n}\nvoid PositionAABox_18D(inout float3 position, inout
uint seed, float3 Box_center, float3 Box_size) /*positionMode:Volume spawnMode:Random
*/\n{\n position = Box_size * (RAND3 - 0.5f) + Box_center;\n}\n\n\r\n\r\n#if
HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
*/\n{\n position = Box_size * (RAND3 - 0.5f) + Box_center;\n}\n\n\r\n\r\n//
Due to a bug in HLSL compiler, disable spurious \"unitialized variable\" due
to mid function return statement\r\n#pragma warning(push)\r\n#pragma warning(disable
: 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

name: '[System 1]Output Particle Lit Quad'
source: "Shader \"Hidden/VFX/FlyingLeaves/System 1/Output Particle Lit Quad\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Geometry+450\" \"IgnoreProjector\"=\"False\"
\"RenderType\"=\"Opaque\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
\"RenderType\"=\"Opaque\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
LEqual\n\t\tZWrite On\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

1\n\t\t#define HDRP_USE_BASE_COLOR_MAP_COLOR 1\n\t\t#define HDRP_USE_BASE_COLOR_MAP_ALPHA
1\n\t\t#define HDRP_USE_BASE_COLOR 1\n\t\t#define IS_OPAQUE_NOT_SIMPLE_LIT_PARTICLE
1\n\t\t#define USE_NORMAL_BENDING 1\n\t\t#define FORCE_NORMAL_VARYING 1\n\t\t#define
VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_LOCAL_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
float4 Size_b;\n\t\t float currentFrameIndex;\n\t\t uint3 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float size;\n\t\t float3 velocity;\n\t\t float

angleZ;\n\t\t float pivotX;\n\t\t float pivotY;\n\t\t float pivotZ;\n\t\t
float scaleX;\n\t\t float scaleY;\n\t\t float scaleZ;\n\t\t float
age;\n\t\t float3 color;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
baseColorMap;\n\t\tSamplerState samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
baseColorMap;\n\t\tSamplerState samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

instanceID : SV_InstanceID;\n\t\t\t#define VFX_GET_INSTANCE_ID(i) i.instanceID\n\t\t#endif\n\t\t\n\t\tENDHLSL\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
{ \"LightMode\"=\"SceneSelectionPass\" }\n\t\t\n\t\t\tZWrite On\n\t\t\tBlend
Off\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#define VFX_PASSDEPTH VFX_PASSDEPTH_SELECTION\n\t\t\t#pragma
target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t#pragma multi_compile _
WRITE_NORMAL_BUFFER\n\t\t\t\n\t\t\t#define NEEDS_NORMAL\tdefined(WRITE_NORMAL_BUFFER)
target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t\n\t\t\t#define NEEDS_NORMAL\tdefined(WRITE_NORMAL_BUFFER)
|| FORCE_NORMAL_VARYING || SHADERGRAPH_NEEDS_NORMAL_DEPTHONLY\n\t\t\t#define
NEEDS_TANGENT\tUSE_NORMAL_MAP || USE_NORMAL_BENDING || SHADERGRAPH_NEEDS_TANGENT_DEPTHONLY\n\t\t\t\n\t\t\tstruct
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\n\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t // Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst
uint diffusionProfileHash = 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS
= VFXGetPositionRWS(i);\n\t\t\t\tfloat4 posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs
posInput = GetPositionInput(posSS.xy, _ScreenSize.zw, posSS.z, posSS.w, posRWS,
tileIndex);\n\t\t\t\t\n\t\t\t\tfloat alpha;\n\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\n\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t //TODO: investigate why this is needed\n\t\t\t preLightData.coatPartLambdaV
= 0;\n\t\t\t preLightData.coatIblR = 0;\n\t\t\t preLightData.coatIblF
= 0;\n\t\t\t \n\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t}\n\t\t\t\n\t\t\tvoid
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t#define SHADERPASS
SHADERPASS_MOTION_VECTORS\n\t\t\t\t\t#else\n\t\t\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\tvoid VFXGetHDRPLitData(out SurfaceData
surfaceData, out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData
preLightData, VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData,
uint2 tileIndex)\n\t\t\t\t\t{\t\n\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t\t
// Loads diffusion profile\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha;\n\t\t\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\t\t\n\t\t\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\t\t\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t //TODO: investigate why this is needed\n\t\t\t\t\t
preLightData.coatPartLambdaV = 0;\n\t\t\t\t\t preLightData.coatIblR = 0;\n\t\t\t\t\t
preLightData.coatIblF = 0;\n\t\t\t\t\t \n\t\t\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvoid
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t{\n\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t}\n\t\t\t\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t
\n\t\t\t#pragma fragment frag\n\t\t\tvoid frag(ps_input i\n\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t,
bool frontFace : SV_IsFrontFace\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t, out float4 outMotionVector : SV_Target0\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target1\n\t\t\t\t#endif\n\t\t\t#else\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t, out float4 outColor :
SV_Target0\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t\t)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\tconst VFXUVData uvData
= GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\tfloat3 bitangentWS = cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\tbitangentWS = cross(tangentWS,normalWS);\n\t\t\t\t\t\t\ttangentWS
*= faceMul;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3x3 tbn
= float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t \n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t
float alpha = VFXGetFragmentColor(i).a;\n\t\t\t #if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t
alpha *= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t
#endif\n\t\t\t #endif\n\t\t\t VFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t
#else\n\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t normalWS = mul(n,tbn);\n\t\t\t
#endif\n\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t
\n\t\t\t surface.normalWS = normalWS;\n\t\t\t \n\t\t\t
EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface), i.VFX_VARYING_POSCS.xy,
outNormalBuffer);\n\t\t\t #endif\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t\t\t{\n\t\t\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t, bool frontFace
: SV_IsFrontFace\n\t\t\t\t\t#endif\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t// We need the depth color as SV_Target0 for
alpha to coverage\n\t\t\t\t\t\t, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t,
out float4 outMotionVector : SV_Target1\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target2\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t//
When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t\t, out
float4 outMotionVector : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t//
We need the depth color as SV_Target0 for alpha to coverage\n\t\t\t\t\t\t,
out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#elif
defined(WRITE_NORMAL_BUFFER)\n\t\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outColor
: SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\t\t\tconst VFXUVData
uvData = GetUVData(i);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\t\t\tfloat3 bitangentWS =
cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\t\t\tbitangentWS =
cross(tangentWS,normalWS);\n\t\t\t\t\t\t\t\t\ttangentWS *= faceMul;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t\t\t
#else\n\t\t\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t\t\t normalWS = mul(n,tbn);\n\t\t\t\t\t
#endif\n\t\t\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t\t\t
surface.normalWS = normalWS;\n\t\t\t\t\t EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface),
i.VFX_VARYING_POSCS.xy, outNormalBuffer);\n\t\t\t\t\t #endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\toutMotionVector = encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t// We use depth prepass
for scene selection in the editor, this code allow to output the outline correctly\n\t\t\t\t\toutColor
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH ==
VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t//void\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH
undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\t//
We use depth prepass for scene selection in the editor, this code allow to
output the outline correctly\n\t\t\t\t\t\t\toutColor = float4(_ObjectId, _PassValue,
1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t//void\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined\n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t#pragma target 4.5\n\t\t\t#define
UNITY_MATERIAL_LIT\n\t\t\t#pragma multi_compile _ WRITE_NORMAL_BUFFER\n\t\t\t\n\t\t\t#define
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t#pragma multi_compile _ WRITE_NORMAL_BUFFER\n\t\t\t#pragma
multi_compile _ WRITE_MSAA_DEPTH\n\t\t\t#pragma target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t\n\t\t\t#define
NEEDS_NORMAL\tdefined(WRITE_NORMAL_BUFFER) || FORCE_NORMAL_VARYING || SHADERGRAPH_NEEDS_NORMAL_DEPTHONLY\n\t\t\t#define
NEEDS_TANGENT\tUSE_NORMAL_MAP || USE_NORMAL_BENDING || SHADERGRAPH_NEEDS_TANGENT_DEPTHONLY\n\t\t\t\n\t\t\tstruct
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\n\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t // Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst
uint diffusionProfileHash = 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS
= VFXGetPositionRWS(i);\n\t\t\t\tfloat4 posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs
posInput = GetPositionInput(posSS.xy, _ScreenSize.zw, posSS.z, posSS.w, posRWS,
tileIndex);\n\t\t\t\t\n\t\t\t\tfloat alpha;\n\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\n\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t //TODO: investigate why this is needed\n\t\t\t preLightData.coatPartLambdaV
= 0;\n\t\t\t preLightData.coatIblR = 0;\n\t\t\t preLightData.coatIblF
= 0;\n\t\t\t \n\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t}\n\t\t\t\n\t\t\tvoid
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t#define SHADERPASS
SHADERPASS_MOTION_VECTORS\n\t\t\t\t\t#else\n\t\t\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\tvoid VFXGetHDRPLitData(out SurfaceData
surfaceData, out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData
preLightData, VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData,
uint2 tileIndex)\n\t\t\t\t\t{\t\n\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t\t
// Loads diffusion profile\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha;\n\t\t\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\t\t\n\t\t\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\t\t\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t //TODO: investigate why this is needed\n\t\t\t\t\t
preLightData.coatPartLambdaV = 0;\n\t\t\t\t\t preLightData.coatIblR = 0;\n\t\t\t\t\t
preLightData.coatIblF = 0;\n\t\t\t\t\t \n\t\t\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvoid
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t{\n\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t}\n\t\t\t\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t
\n\t\t\t#pragma fragment frag\n\t\t\tvoid frag(ps_input i\n\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t,
bool frontFace : SV_IsFrontFace\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t, out float4 outMotionVector : SV_Target0\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target1\n\t\t\t\t#endif\n\t\t\t#else\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t, out float4 outColor :
SV_Target0\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t\t)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\tconst VFXUVData uvData
= GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\tfloat3 bitangentWS = cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\tbitangentWS = cross(tangentWS,normalWS);\n\t\t\t\t\t\t\ttangentWS
*= faceMul;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3x3 tbn
= float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t \n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t
float alpha = VFXGetFragmentColor(i).a;\n\t\t\t #if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t
alpha *= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t
#endif\n\t\t\t #endif\n\t\t\t VFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t
#else\n\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t normalWS = mul(n,tbn);\n\t\t\t
#endif\n\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t
\n\t\t\t surface.normalWS = normalWS;\n\t\t\t \n\t\t\t
EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface), i.VFX_VARYING_POSCS.xy,
outNormalBuffer);\n\t\t\t #endif\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t\t\t{\n\t\t\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t, bool frontFace
: SV_IsFrontFace\n\t\t\t\t\t#endif\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t// We need the depth color as SV_Target0 for
alpha to coverage\n\t\t\t\t\t\t, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t,
out float4 outMotionVector : SV_Target1\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target2\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t//
When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t\t, out
float4 outMotionVector : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t//
We need the depth color as SV_Target0 for alpha to coverage\n\t\t\t\t\t\t,
out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#elif
defined(WRITE_NORMAL_BUFFER)\n\t\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outColor
: SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\t\t\tconst VFXUVData
uvData = GetUVData(i);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\t\t\tfloat3 bitangentWS =
cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\t\t\tbitangentWS =
cross(tangentWS,normalWS);\n\t\t\t\t\t\t\t\t\ttangentWS *= faceMul;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t\t\t
#else\n\t\t\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t\t\t normalWS = mul(n,tbn);\n\t\t\t\t\t
#endif\n\t\t\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t\t\t
surface.normalWS = normalWS;\n\t\t\t\t\t EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface),
i.VFX_VARYING_POSCS.xy, outNormalBuffer);\n\t\t\t\t\t #endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\toutMotionVector = encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t// We use depth prepass
for scene selection in the editor, this code allow to output the outline correctly\n\t\t\t\t\toutColor
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH ==
VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t//void\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH
undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\t//
We use depth prepass for scene selection in the editor, this code allow to
output the outline correctly\n\t\t\t\t\t\t\toutColor = float4(_ObjectId, _PassValue,
1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t//void\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined\n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#pragma target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t#pragma
multi_compile _ WRITE_NORMAL_BUFFER\n\t\t\t\n\t\t\t#define NEEDS_NORMAL\tdefined(WRITE_NORMAL_BUFFER)
|| FORCE_NORMAL_VARYING || SHADERGRAPH_NEEDS_NORMAL_DEPTHONLY\n\t\t\t#define
VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#pragma multi_compile _ WRITE_NORMAL_BUFFER\n\t\t\t#pragma
multi_compile _ WRITE_MSAA_DEPTH\n\t\t\t#pragma target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t\n\t\t\t#define
NEEDS_NORMAL\tdefined(WRITE_NORMAL_BUFFER) || FORCE_NORMAL_VARYING || SHADERGRAPH_NEEDS_NORMAL_DEPTHONLY\n\t\t\t#define
NEEDS_TANGENT\tUSE_NORMAL_MAP || USE_NORMAL_BENDING || SHADERGRAPH_NEEDS_TANGENT_DEPTHONLY\n\t\t\t\n\t\t\tstruct
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4
uv : TEXCOORD0;\n\t\t\t\t#else\n\t\t\t\tfloat2 uv : TEXCOORD0;\t\n\t\t\t\t#endif\n\t\t\t\t#if

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\n\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t // Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst
uint diffusionProfileHash = 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS
= VFXGetPositionRWS(i);\n\t\t\t\tfloat4 posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs
posInput = GetPositionInput(posSS.xy, _ScreenSize.zw, posSS.z, posSS.w, posRWS,
tileIndex);\n\t\t\t\t\n\t\t\t\tfloat alpha;\n\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\n\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t //TODO: investigate why this is needed\n\t\t\t preLightData.coatPartLambdaV
= 0;\n\t\t\t preLightData.coatIblR = 0;\n\t\t\t preLightData.coatIblF
= 0;\n\t\t\t \n\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t}\n\t\t\t\n\t\t\tvoid
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t#define SHADERPASS
SHADERPASS_MOTION_VECTORS\n\t\t\t\t\t#else\n\t\t\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\tvoid VFXGetHDRPLitData(out SurfaceData
surfaceData, out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData
preLightData, VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData,
uint2 tileIndex)\n\t\t\t\t\t{\t\n\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t\t
// Loads diffusion profile\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha;\n\t\t\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\t\t\n\t\t\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\t\t\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t //TODO: investigate why this is needed\n\t\t\t\t\t
preLightData.coatPartLambdaV = 0;\n\t\t\t\t\t preLightData.coatIblR = 0;\n\t\t\t\t\t
preLightData.coatIblF = 0;\n\t\t\t\t\t \n\t\t\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvoid
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t{\n\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t}\n\t\t\t\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t
\n\t\t\t#pragma fragment frag\n\t\t\tvoid frag(ps_input i\n\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t,
bool frontFace : SV_IsFrontFace\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t, out float4 outMotionVector : SV_Target0\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target1\n\t\t\t\t#endif\n\t\t\t#else\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t, out float4 outColor :
SV_Target0\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t\t)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\tconst VFXUVData uvData
= GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\tfloat3 bitangentWS = cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\tbitangentWS = cross(tangentWS,normalWS);\n\t\t\t\t\t\t\ttangentWS
*= faceMul;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3x3 tbn
= float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t \n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t
float alpha = VFXGetFragmentColor(i).a;\n\t\t\t #if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t
alpha *= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t
#endif\n\t\t\t #endif\n\t\t\t VFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t
#else\n\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t normalWS = mul(n,tbn);\n\t\t\t
#endif\n\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t
\n\t\t\t surface.normalWS = normalWS;\n\t\t\t \n\t\t\t
EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface), i.VFX_VARYING_POSCS.xy,
outNormalBuffer);\n\t\t\t #endif\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t\t\t{\n\t\t\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t, bool frontFace
: SV_IsFrontFace\n\t\t\t\t\t#endif\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t// We need the depth color as SV_Target0 for
alpha to coverage\n\t\t\t\t\t\t, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t,
out float4 outMotionVector : SV_Target1\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target2\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t//
When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t\t, out
float4 outMotionVector : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t//
We need the depth color as SV_Target0 for alpha to coverage\n\t\t\t\t\t\t,
out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#elif
defined(WRITE_NORMAL_BUFFER)\n\t\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outColor
: SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\t\t\tconst VFXUVData
uvData = GetUVData(i);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\t\t\tfloat3 bitangentWS =
cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\t\t\tbitangentWS =
cross(tangentWS,normalWS);\n\t\t\t\t\t\t\t\t\ttangentWS *= faceMul;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t\t\t
#else\n\t\t\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t\t\t normalWS = mul(n,tbn);\n\t\t\t\t\t
#endif\n\t\t\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t\t\t
surface.normalWS = normalWS;\n\t\t\t\t\t EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface),
i.VFX_VARYING_POSCS.xy, outNormalBuffer);\n\t\t\t\t\t #endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\toutMotionVector = encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t// We use depth prepass
for scene selection in the editor, this code allow to output the outline correctly\n\t\t\t\t\toutColor
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH ==
VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t//void\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH
undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\t//
We use depth prepass for scene selection in the editor, this code allow to
output the outline correctly\n\t\t\t\t\t\t\toutColor = float4(_ObjectId, _PassValue,
1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t//void\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined\n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
{ \"LightMode\"=\"GBuffer\" }\n\t\t\n\t\t Stencil\n\t\t {\n\t\t WriteMask
6\n\t\t Ref 2\n\t\t Comp Always\n\t\t Pass Replace\n\t\t }\n\n\t\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma
target 4.5\n\t\t\t\n\t\t\t#pragma multi_compile _ LIGHT_LAYERS\n\t\t\t#pragma

Source:Slot Random:Uniform channels:XYZ */\n{\n texIndex = lerp(A,B,RAND);\n}\nvoid
PositionAABox_18D(inout float3 position, inout uint seed, float3 Box_center,
float3 Box_size) /*positionMode:Volume spawnMode:Random */\n{\n position
= Box_size * (RAND3 - 0.5f) + Box_center;\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
= Box_size * (RAND3 - 0.5f) + Box_center;\n}\n\n\r\n\r\n// Due to a bug in
HLSL compiler, disable spurious \"unitialized variable\" due to mid function
return statement\r\n#pragma warning(push)\r\n#pragma warning(disable : 4000)\r\n#if
HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

* 0x8 + 0x1A3) << 2,asuint(attributes.alpha));\n\t\t\t\tattributeBuffer.Store((index
* 0x8 + 0x4) << 2,asuint(attributes.age));\n\t\t\t\tattributeBuffer.Store3((index
* 0x8 + 0x1A4) << 2,asuint(attributes.oldPosition));\n\t\t\t\tattributeBuffer.Store((index
* 0x8 + 0x5) << 2,uint(attributes.stripAlive));\n\t\t\t\tfor (uint i = 0; i
< eventCount_a; ++i) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
* 0x8 + 0x5) << 2,uint(attributes.stripAlive));\n\t\t\t\tfor (uint ia = 0;
ia < eventCount_a; ++ia) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
* 0x1 + 0x2A0) << 2,uint(attributes.alive));\n\t\t\t\tfor (uint i = 0; i <
eventCount_a; ++i) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if USE_DEAD_LIST
* 0x1 + 0x2A0) << 2,uint(attributes.alive));\n\t\t\t\tfor (uint ia = 0; ia
< eventCount_a; ++ia) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if USE_DEAD_LIST
&& !VFX_USE_STRIPALIVE_CURRENT\r\n\t\t\t\tuint deadIndex = deadListOut.IncrementCounter();\r\n\t\t\t\tdeadListOut[deadIndex]
= index;\r\n#endif\r\n\t\t\t}\r\n\t\t}\r\n#if USE_DEAD_LIST && VFX_USE_STRIPALIVE_CURRENT\r\n
else if (attributes.stripAlive)\r\n {\r\n if (STRIP_DATA_X(attachedStripDataBuffer,

* 0x8 + 0x4) << 2,asuint(attributes.age));\n\t\tattributeBuffer.Store((index
* 0x1 + 0x2A0) << 2,uint(attributes.alive));\n\t\tattributeBuffer.Store3((index
* 0x8 + 0x1A4) << 2,asuint(attributes.oldPosition));\n\t\tattributeBuffer.Store((index
* 0x8 + 0x5) << 2,uint(attributes.stripAlive));\n\t\tfor (uint i = 0; i < eventCount_a;
++i) eventListOut_a.Append(index);\n\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
* 0x8 + 0x5) << 2,uint(attributes.stripAlive));\n\t\tfor (uint ia = 0; ia <
eventCount_a; ++ia) eventListOut_a.Append(index);\n\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
uint indirectIndex = indirectBuffer.IncrementCounter();\r\n\t\tindirectBuffer[indirectIndex]
= index;\r\n#endif\r\n#endif\r\n\t}\r\n}\r\n"
- compute: 0

}\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
}\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
SrcAlpha OneMinusSrcAlpha \n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

IS_TRANSPARENT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_ALPHA 1\n\t\t#define VFX_HAS_INDIRECT_DRAW
1\n\t\t#define VFX_BYPASS_EXPOSURE 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
1\n\t\t#define VFX_BYPASS_EXPOSURE 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_LOCAL_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float3 position;\n\t\t float3 color;\n\t\t
float alpha;\n\t\t bool alive;\n\t\t float3 oldPosition;\n\t\t};\n\t\t\n\t\tstruct

VFX_VARYING_PS_INPUTS ps_input\n\t\t\t#define VFX_VARYING_POSCS pos\n\t\t\t#undef
VFX_VARYING_COLOR // Not used\n\t\t\t#define VFX_VARYING_ALPHA builtInInterpolants.x\n\t\t\t#undef
VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE\n\t\t\t#define VFX_VARYING_ALPHATHRESHOLD
builtInInterpolants.y\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS) &&
defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS and VFX_VARYING_POSCS
builtInInterpolants.y\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS and VFX_VARYING_POSCS
must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\t\n\t\t\t\n\t\t\tstruct
vs_input\n\t\t\t{\n\t\t\t\tVFX_DECLARE_INSTANCE_ID\n\t\t\t};\n\t\t\t\n\t\t\t#pragma

* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t o.pointSize = 1;\n\t\t\t\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\treturn
(float4)0;\n\t\t\t#else\n\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t#endif\n\t\t\t}\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 0\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos

float alpha, float Value) /*attribute:alpha Composition:Overwrite Source:Source
Random:Off channels:XYZ */\n{\n alpha = Value;\n}\nvoid SetAttribute_32764A86(inout
float size, float Value) /*attribute:size Composition:Overwrite Source:Source
Random:Off channels:XYZ */\n{\n size = Value;\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
Random:Off channels:XYZ */\n{\n size = Value;\n}\n\n\r\n\r\n// Due to a
bug in HLSL compiler, disable spurious \"unitialized variable\" due to mid
function return statement\r\n#pragma warning(push)\r\n#pragma warning(disable
: 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

name: '[System 3]Output ParticleStrip Quad'
source: "Shader \"Hidden/VFX/FlyingLeaves/System 3/Output ParticleStrip Quad\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\"
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
SrcAlpha One \n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

1\n\t\t#define VFX_BLENDMODE_ADD 1\n\t\t#define VFX_BYPASS_EXPOSURE 1\n\t\t#define
HAS_STRIPS 1\n\t\t#define VFX_SHADERGRAPH 1\n\t\t#define HAS_SHADERGRAPH_PARAM_COLOR
1\n\t\t#define HAS_SHADERGRAPH_PARAM_ALPHA 1\n\t\t#define VFX_NEEDS_POSWS_INTERPOLATOR
1\n\t\t#define VFX_STRIPS_UV_STRECHED 1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
1\n\t\t#define VFX_STRIPS_UV_STRECHED 1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_LOCAL_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
float4 Size_a;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct Attributes\n\t\t{\n\t\t
float lifetime;\n\t\t float3 color;\n\t\t float3 position;\n\t\t float

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

= (float)0;{\n\t\t\t \n\t\t\t SoftParticleDistance__ = (float)1;\n\t\t\t
}\n\t\t\t o.SoftParticleDistance = SoftParticleDistance__;\n\n\t\t\t\n\t\t\t\treturn
o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t#define
REQUIRE_DEPTH_TEXTURE\n\t\t\t\n\t\t\t\t\t#include \"Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl\"\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/EntityLighting.hlsl\"\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl\"\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinGIUtilities.hlsl\"\n\t\t\t\t\t#ifndef
SHADERPASS\n\t\t\t\t\t#error Shaderpass should be defined at this stage.\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl\"\n\t\t\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.shadergraph/ShaderGraphLibrary/Functions.hlsl\"\n\t\t\t//
Node: Remap\n\t\t\tvoid Unity_Remap_float(float In, float2 InMinMax, float2
OutMinMax, out float Out)\n\t\t\t{\n\t\t\t Out = OutMinMax.x + (In - InMinMax.x)
* (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x);\n\t\t\t}\n\t\t\t\n\t\t\t//
Node: Absolute\n\t\t\tvoid Unity_Absolute_float(float In, out float Out)\n\t\t\t{\n\t\t\t
Out = abs(In);\n\t\t\t}\n\t\t\t\n\t\t\t// Node: One Minus\n\t\t\tvoid Unity_OneMinus_float(float
In, out float Out)\n\t\t\t{\n\t\t\t Out = 1 - In;\n\t\t\t}\n\t\t\t\n\t\t\t//
Node: Feather Step, Multiply\n\t\t\tvoid Unity_Multiply_float(float A, float
B, out float Out)\n\t\t\t{\n\t\t\t Out = A * B;\n\t\t\t}\n\t\t\t\n\t\t\t//
Node: Feather Step, SoftParticle\n\t\t\tvoid Unity_Subtract_float(float A,
float B, out float Out)\n\t\t\t{\n\t\t\t Out = A - B;\n\t\t\t}\n\t\t\t\n\t\t\t//
Node: Feather Step\n\t\t\tvoid Unity_Add_float(float A, float B, out float
Out)\n\t\t\t{\n\t\t\t Out = A + B;\n\t\t\t}\n\t\t\t\n\t\t\t// Node: Feather
Step, SoftParticle\n\t\t\tvoid Unity_Smoothstep_float(float Edge1, float Edge2,
float In, out float Out)\n\t\t\t{\n\t\t\t Out = smoothstep(Edge1, Edge2,
In);\n\t\t\t}\n\t\t\t\n\t\t\t// Node: Feather Step\n\t\t\tstruct Bindings_FeatherStep_3fc231337476e5d4e868153ae13d3355\n\t\t\t{\n\t\t\t};\n\t\t\t\n\t\t\tvoid
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t#define
REQUIRE_DEPTH_TEXTURE\n\t\t\t\t\t\n\t\t\t\t\t\t\t#include \"Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl\"\n\t\t\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Packing.hlsl\"\n\t\t\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl\"\n\t\t\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/EntityLighting.hlsl\"\n\t\t\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinGIUtilities.hlsl\"\n\t\t\t\t\t\t\t#ifndef
SHADERPASS\n\t\t\t\t\t\t\t#error Shaderpass should be defined at this stage.\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl\"\n\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.shadergraph/ShaderGraphLibrary/Functions.hlsl\"\n\t\t\t\t\t//
Node: Remap\n\t\t\t\t\tvoid Unity_Remap_float(float In, float2 InMinMax, float2
OutMinMax, out float Out)\n\t\t\t\t\t{\n\t\t\t\t\t Out = OutMinMax.x + (In
- InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t//
Node: Absolute\n\t\t\t\t\tvoid Unity_Absolute_float(float In, out float Out)\n\t\t\t\t\t{\n\t\t\t\t\t
Out = abs(In);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t// Node: One Minus\n\t\t\t\t\tvoid
Unity_OneMinus_float(float In, out float Out)\n\t\t\t\t\t{\n\t\t\t\t\t Out
= 1 - In;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t// Node: Feather Step, Multiply\n\t\t\t\t\tvoid
Unity_Multiply_float(float A, float B, out float Out)\n\t\t\t\t\t{\n\t\t\t\t\t
Out = A * B;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t// Node: Feather Step, SoftParticle\n\t\t\t\t\tvoid
Unity_Subtract_float(float A, float B, out float Out)\n\t\t\t\t\t{\n\t\t\t\t\t
Out = A - B;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t// Node: Feather Step\n\t\t\t\t\tvoid
Unity_Add_float(float A, float B, out float Out)\n\t\t\t\t\t{\n\t\t\t\t\t
Out = A + B;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t// Node: Feather Step, SoftParticle\n\t\t\t\t\tvoid
Unity_Smoothstep_float(float Edge1, float Edge2, float In, out float Out)\n\t\t\t\t\t{\n\t\t\t\t\t
Out = smoothstep(Edge1, Edge2, In);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t//
Node: Feather Step\n\t\t\t\t\tstruct Bindings_FeatherStep_3fc231337476e5d4e868153ae13d3355\n\t\t\t\t\t{\n\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\tvoid
IN, out float OutVector4_1)\n\t\t\t{\n\t\t\t float _Property_6AE77210_Out_0
= Vector1_9B1ABA2C;\n\t\t\t float _Property_9733AD99_Out_0 = Vector1_78C972FB;\n\t\t\t
float _Multiply_ABC033FF_Out_2;\n\t\t\t Unity_Multiply_float(_Property_9733AD99_Out_0,
0.5, _Multiply_ABC033FF_Out_2);\n\t\t\t float _Subtract_583838FC_Out_2;\n\t\t\t
Unity_Subtract_float(_Property_6AE77210_Out_0, _Multiply_ABC033FF_Out_2, _Subtract_583838FC_Out_2);\n\t\t\t
float _Add_2CD18BB_Out_2;\n\t\t\t Unity_Add_float(_Property_6AE77210_Out_0,
_Multiply_ABC033FF_Out_2, _Add_2CD18BB_Out_2);\n\t\t\t float _Property_B48290D_Out_0
= Vector1_8D3A95EC;\n\t\t\t float _Smoothstep_306AAA2A_Out_3;\n\t\t\t
IN, out float OutVector4_1)\n\t\t\t\t\t{\n\t\t\t\t\t float _Property_6AE77210_Out_0
= Vector1_9B1ABA2C;\n\t\t\t\t\t float _Property_9733AD99_Out_0 = Vector1_78C972FB;\n\t\t\t\t\t
float _Multiply_ABC033FF_Out_2;\n\t\t\t\t\t Unity_Multiply_float(_Property_9733AD99_Out_0,
0.5, _Multiply_ABC033FF_Out_2);\n\t\t\t\t\t float _Subtract_583838FC_Out_2;\n\t\t\t\t\t
Unity_Subtract_float(_Property_6AE77210_Out_0, _Multiply_ABC033FF_Out_2, _Subtract_583838FC_Out_2);\n\t\t\t\t\t
float _Add_2CD18BB_Out_2;\n\t\t\t\t\t Unity_Add_float(_Property_6AE77210_Out_0,
_Multiply_ABC033FF_Out_2, _Add_2CD18BB_Out_2);\n\t\t\t\t\t float _Property_B48290D_Out_0
= Vector1_8D3A95EC;\n\t\t\t\t\t float _Smoothstep_306AAA2A_Out_3;\n\t\t\t\t\t
_Smoothstep_306AAA2A_Out_3);\n\t\t\t OutVector4_1 = _Smoothstep_306AAA2A_Out_3;\n\t\t\t}\n\t\t\t\n\t\t\t//
Node: SoftParticle\n\t\t\tvoid Unity_SceneDepth_Eye_float(float4 UV, out float
Out)\n\t\t\t{\n\t\t\t Out = LinearEyeDepth(SHADERGRAPH_SAMPLE_SCENE_DEPTH(UV.xy),
_ZBufferParams);\n\t\t\t}\n\t\t\t\n\t\t\t// Node: SoftParticle\n\t\t\tstruct
Bindings_PixelDepth_a4fd51fa728c5ac4692b174c7430f87b\n\t\t\t{\n\t\t\t float4
ScreenPosition;\n\t\t\t};\n\t\t\t\n\t\t\tvoid SG_PixelDepth_a4fd51fa728c5ac4692b174c7430f87b(Bindings_PixelDepth_a4fd51fa728c5ac4692b174c7430f87b
IN, out float depth_1)\n\t\t\t{\n\t\t\t float4 _ScreenPosition_4A338A69_Out_0
= IN.ScreenPosition;\n\t\t\t float _Split_E29E317D_R_1 = _ScreenPosition_4A338A69_Out_0[0];\n\t\t\t
float _Split_E29E317D_G_2 = _ScreenPosition_4A338A69_Out_0[1];\n\t\t\t float
_Split_E29E317D_B_3 = _ScreenPosition_4A338A69_Out_0[2];\n\t\t\t float _Split_E29E317D_A_4
= _ScreenPosition_4A338A69_Out_0[3];\n\t\t\t depth_1 = _Split_E29E317D_A_4;\n\t\t\t}\n\t\t\t\n\t\t\t//
Node: SoftParticle\n\t\t\tvoid Unity_Maximum_float(float A, float B, out float
Out)\n\t\t\t{\n\t\t\t Out = max(A, B);\n\t\t\t}\n\t\t\t\n\t\t\t// Node:
SoftParticle\n\t\t\tvoid Unity_Divide_float(float A, float B, out float Out)\n\t\t\t{\n\t\t\t
Out = A / B;\n\t\t\t}\n\t\t\t\n\t\t\t// Node: SoftParticle\n\t\t\tvoid Unity_Saturate_float(float
In, out float Out)\n\t\t\t{\n\t\t\t Out = saturate(In);\n\t\t\t}\n\t\t\t\n\t\t\t//
Node: SoftParticle\n\t\t\tstruct Bindings_SoftParticle_30b7e1d9500bb7e4c8d0ae6c56a9e9a1\n\t\t\t{\n\t\t\t
float4 ScreenPosition;\n\t\t\t};\n\t\t\t\n\t\t\tvoid SG_SoftParticle_30b7e1d9500bb7e4c8d0ae6c56a9e9a1(float
_Smoothstep_306AAA2A_Out_3);\n\t\t\t\t\t OutVector4_1 = _Smoothstep_306AAA2A_Out_3;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t//
Node: SoftParticle\n\t\t\t\t\tvoid Unity_SceneDepth_Eye_float(float4 UV, out
float Out)\n\t\t\t\t\t{\n\t\t\t\t\t Out = LinearEyeDepth(SHADERGRAPH_SAMPLE_SCENE_DEPTH(UV.xy),
_ZBufferParams);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t// Node: SoftParticle\n\t\t\t\t\tstruct
Bindings_PixelDepth_a4fd51fa728c5ac4692b174c7430f87b\n\t\t\t\t\t{\n\t\t\t\t\t
float4 ScreenPosition;\n\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\tvoid SG_PixelDepth_a4fd51fa728c5ac4692b174c7430f87b(Bindings_PixelDepth_a4fd51fa728c5ac4692b174c7430f87b
IN, out float depth_1)\n\t\t\t\t\t{\n\t\t\t\t\t float4 _ScreenPosition_4A338A69_Out_0
= IN.ScreenPosition;\n\t\t\t\t\t float _Split_E29E317D_R_1 = _ScreenPosition_4A338A69_Out_0[0];\n\t\t\t\t\t
float _Split_E29E317D_G_2 = _ScreenPosition_4A338A69_Out_0[1];\n\t\t\t\t\t
float _Split_E29E317D_B_3 = _ScreenPosition_4A338A69_Out_0[2];\n\t\t\t\t\t
float _Split_E29E317D_A_4 = _ScreenPosition_4A338A69_Out_0[3];\n\t\t\t\t\t
depth_1 = _Split_E29E317D_A_4;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t// Node:
SoftParticle\n\t\t\t\t\tvoid Unity_Maximum_float(float A, float B, out float
Out)\n\t\t\t\t\t{\n\t\t\t\t\t Out = max(A, B);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t//
Node: SoftParticle\n\t\t\t\t\tvoid Unity_Divide_float(float A, float B, out
float Out)\n\t\t\t\t\t{\n\t\t\t\t\t Out = A / B;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t//
Node: SoftParticle\n\t\t\t\t\tvoid Unity_Saturate_float(float In, out float
Out)\n\t\t\t\t\t{\n\t\t\t\t\t Out = saturate(In);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t//
Node: SoftParticle\n\t\t\t\t\tstruct Bindings_SoftParticle_30b7e1d9500bb7e4c8d0ae6c56a9e9a1\n\t\t\t\t\t{\n\t\t\t\t\t
float4 ScreenPosition;\n\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\tvoid SG_SoftParticle_30b7e1d9500bb7e4c8d0ae6c56a9e9a1(float
out float Opacity_1)\n\t\t\t{\n\t\t\t float _SceneDepth_D8E0E50A_Out_1;\n\t\t\t
out float Opacity_1)\n\t\t\t\t\t{\n\t\t\t\t\t float _SceneDepth_D8E0E50A_Out_1;\n\t\t\t\t\t
0, 0), _SceneDepth_D8E0E50A_Out_1);\n\t\t\t Bindings_PixelDepth_a4fd51fa728c5ac4692b174c7430f87b
_PixelDepth_64AD2AD5;\n\t\t\t _PixelDepth_64AD2AD5.ScreenPosition = IN.ScreenPosition;\n\t\t\t
float _PixelDepth_64AD2AD5_depth_1;\n\t\t\t SG_PixelDepth_a4fd51fa728c5ac4692b174c7430f87b(_PixelDepth_64AD2AD5,
_PixelDepth_64AD2AD5_depth_1);\n\t\t\t float _Subtract_7C133200_Out_2;\n\t\t\t
Unity_Subtract_float(_SceneDepth_D8E0E50A_Out_1, _PixelDepth_64AD2AD5_depth_1,
_Subtract_7C133200_Out_2);\n\t\t\t float _Property_4EA7E65F_Out_0 = Vector1_1E6191B;\n\t\t\t
float _Maximum_87E9B207_Out_2;\n\t\t\t Unity_Maximum_float(_Property_4EA7E65F_Out_0,
0.001, _Maximum_87E9B207_Out_2);\n\t\t\t float _Divide_A3A47144_Out_2;\n\t\t\t
Unity_Divide_float(_Subtract_7C133200_Out_2, _Maximum_87E9B207_Out_2, _Divide_A3A47144_Out_2);\n\t\t\t
float _Smoothstep_254B27B2_Out_3;\n\t\t\t Unity_Smoothstep_float(0, 1, _Divide_A3A47144_Out_2,
_Smoothstep_254B27B2_Out_3);\n\t\t\t float _Saturate_3A4F4D3C_Out_1;\n\t\t\t
Unity_Saturate_float(_Smoothstep_254B27B2_Out_3, _Saturate_3A4F4D3C_Out_1);\n\t\t\t
Opacity_1 = _Saturate_3A4F4D3C_Out_1;\n\t\t\t}\n\t\t\t\n\t\t\tstruct SG_Input_d7b8de4299b5e51498519b52bb4a3da3\n\t\t\t{\n\t\t\t
float4 ScreenPosition;\n\t\t\t half4 uv0;\n\t\t\t};\n\t\t\t\n\t\t\tstruct
SG_Output_d7b8de4299b5e51498519b52bb4a3da3\n\t\t\t{\n\t\t\t float Alpha_4;\n\t\t\t};\n\t\t\t\n\t\t\tSG_Output_d7b8de4299b5e51498519b52bb4a3da3
SG_Evaluate_d7b8de4299b5e51498519b52bb4a3da3(\n\t\t\t SG_Input_d7b8de4299b5e51498519b52bb4a3da3
IN,\n\t\t\t /* Property: AlphaAttribute */ float AlphaAttribute,\n\t\t\t
/* Property: SoftParticleDistance */ float SoftParticleDistance)\n\t\t\t{\n\t\t\t
// Node: UV\n\t\t\t float4 _UV_749EEAAD_Out_0 = IN.uv0;\n\t\t\t\n\t\t\t
// Node: Split\n\t\t\t float _Split_929F5279_R_1 = _UV_749EEAAD_Out_0[0];\n\t\t\t
float _Split_929F5279_G_2 = _UV_749EEAAD_Out_0[1];\n\t\t\t float _Split_929F5279_B_3
= _UV_749EEAAD_Out_0[2];\n\t\t\t float _Split_929F5279_A_4 = _UV_749EEAAD_Out_0[3];\n\t\t\t\n\t\t\t
// Node: Remap\n\t\t\t float _Remap_AF3C3BE3_Out_3;\n\t\t\t Unity_Remap_float(_Split_929F5279_R_1,
float2 (0, 1), float2 (-1, 1), _Remap_AF3C3BE3_Out_3);\n\t\t\t\n\t\t\t //
Node: Absolute\n\t\t\t float _Absolute_C431A994_Out_1;\n\t\t\t Unity_Absolute_float(_Remap_AF3C3BE3_Out_3,
_Absolute_C431A994_Out_1);\n\t\t\t\n\t\t\t // Node: One Minus\n\t\t\t
float _OneMinus_26AC9509_Out_1;\n\t\t\t Unity_OneMinus_float(_Absolute_C431A994_Out_1,
_OneMinus_26AC9509_Out_1);\n\t\t\t\n\t\t\t // Node: Feather Step\n\t\t\t
Bindings_FeatherStep_3fc231337476e5d4e868153ae13d3355 _FeatherStep_AB165F9;\n\t\t\t
float _FeatherStep_AB165F9_OutVector4_1;\n\t\t\t SG_FeatherStep_3fc231337476e5d4e868153ae13d3355(_OneMinus_26AC9509_Out_1,
0.2, 0.1, _FeatherStep_AB165F9, _FeatherStep_AB165F9_OutVector4_1);\n\t\t\t\n\t\t\t
// Node: Property\n\t\t\t float _Property_51766AED_Out_0 = AlphaAttribute;\n\t\t\t\n\t\t\t
// Node: Multiply\n\t\t\t float _Multiply_E20EB4_Out_2;\n\t\t\t Unity_Multiply_float(_FeatherStep_AB165F9_OutVector4_1,
_Property_51766AED_Out_0, _Multiply_E20EB4_Out_2);\n\t\t\t\n\t\t\t // Node:
Property\n\t\t\t float _Property_7EE56B4_Out_0 = SoftParticleDistance;\n\t\t\t\n\t\t\t
// Node: SoftParticle\n\t\t\t Bindings_SoftParticle_30b7e1d9500bb7e4c8d0ae6c56a9e9a1
_SoftParticle_7A02D705;\n\t\t\t _SoftParticle_7A02D705.ScreenPosition =
IN.ScreenPosition;\n\t\t\t float _SoftParticle_7A02D705_Opacity_1;\n\t\t\t
0, 0), _SceneDepth_D8E0E50A_Out_1);\n\t\t\t\t\t Bindings_PixelDepth_a4fd51fa728c5ac4692b174c7430f87b
_PixelDepth_64AD2AD5;\n\t\t\t\t\t _PixelDepth_64AD2AD5.ScreenPosition =
IN.ScreenPosition;\n\t\t\t\t\t float _PixelDepth_64AD2AD5_depth_1;\n\t\t\t\t\t
SG_PixelDepth_a4fd51fa728c5ac4692b174c7430f87b(_PixelDepth_64AD2AD5, _PixelDepth_64AD2AD5_depth_1);\n\t\t\t\t\t
float _Subtract_7C133200_Out_2;\n\t\t\t\t\t Unity_Subtract_float(_SceneDepth_D8E0E50A_Out_1,
_PixelDepth_64AD2AD5_depth_1, _Subtract_7C133200_Out_2);\n\t\t\t\t\t float
_Property_4EA7E65F_Out_0 = Vector1_1E6191B;\n\t\t\t\t\t float _Maximum_87E9B207_Out_2;\n\t\t\t\t\t
Unity_Maximum_float(_Property_4EA7E65F_Out_0, 0.001, _Maximum_87E9B207_Out_2);\n\t\t\t\t\t
float _Divide_A3A47144_Out_2;\n\t\t\t\t\t Unity_Divide_float(_Subtract_7C133200_Out_2,
_Maximum_87E9B207_Out_2, _Divide_A3A47144_Out_2);\n\t\t\t\t\t float _Smoothstep_254B27B2_Out_3;\n\t\t\t\t\t
Unity_Smoothstep_float(0, 1, _Divide_A3A47144_Out_2, _Smoothstep_254B27B2_Out_3);\n\t\t\t\t\t
float _Saturate_3A4F4D3C_Out_1;\n\t\t\t\t\t Unity_Saturate_float(_Smoothstep_254B27B2_Out_3,
_Saturate_3A4F4D3C_Out_1);\n\t\t\t\t\t Opacity_1 = _Saturate_3A4F4D3C_Out_1;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tstruct
SG_Input_d7b8de4299b5e51498519b52bb4a3da3\n\t\t\t\t\t{\n\t\t\t\t\t float4
ScreenPosition;\n\t\t\t\t\t half4 uv0;\n\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\tstruct
SG_Output_d7b8de4299b5e51498519b52bb4a3da3\n\t\t\t\t\t{\n\t\t\t\t\t float
Alpha_4;\n\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\tSG_Output_d7b8de4299b5e51498519b52bb4a3da3
SG_Evaluate_d7b8de4299b5e51498519b52bb4a3da3(\n\t\t\t\t\t SG_Input_d7b8de4299b5e51498519b52bb4a3da3
IN,\n\t\t\t\t\t /* Property: AlphaAttribute */ float AlphaAttribute,\n\t\t\t\t\t
/* Property: SoftParticleDistance */ float SoftParticleDistance)\n\t\t\t\t\t{\n\t\t\t\t\t
// Node: UV\n\t\t\t\t\t float4 _UV_749EEAAD_Out_0 = IN.uv0;\n\t\t\t\t\t\n\t\t\t\t\t
// Node: Split\n\t\t\t\t\t float _Split_929F5279_R_1 = _UV_749EEAAD_Out_0[0];\n\t\t\t\t\t
float _Split_929F5279_G_2 = _UV_749EEAAD_Out_0[1];\n\t\t\t\t\t float _Split_929F5279_B_3
= _UV_749EEAAD_Out_0[2];\n\t\t\t\t\t float _Split_929F5279_A_4 = _UV_749EEAAD_Out_0[3];\n\t\t\t\t\t\n\t\t\t\t\t
// Node: Remap\n\t\t\t\t\t float _Remap_AF3C3BE3_Out_3;\n\t\t\t\t\t Unity_Remap_float(_Split_929F5279_R_1,
float2 (0, 1), float2 (-1, 1), _Remap_AF3C3BE3_Out_3);\n\t\t\t\t\t\n\t\t\t\t\t
// Node: Absolute\n\t\t\t\t\t float _Absolute_C431A994_Out_1;\n\t\t\t\t\t
Unity_Absolute_float(_Remap_AF3C3BE3_Out_3, _Absolute_C431A994_Out_1);\n\t\t\t\t\t\n\t\t\t\t\t
// Node: One Minus\n\t\t\t\t\t float _OneMinus_26AC9509_Out_1;\n\t\t\t\t\t
Unity_OneMinus_float(_Absolute_C431A994_Out_1, _OneMinus_26AC9509_Out_1);\n\t\t\t\t\t\n\t\t\t\t\t
// Node: Feather Step\n\t\t\t\t\t Bindings_FeatherStep_3fc231337476e5d4e868153ae13d3355
_FeatherStep_AB165F9;\n\t\t\t\t\t float _FeatherStep_AB165F9_OutVector4_1;\n\t\t\t\t\t
SG_FeatherStep_3fc231337476e5d4e868153ae13d3355(_OneMinus_26AC9509_Out_1, 0.2,
0.1, _FeatherStep_AB165F9, _FeatherStep_AB165F9_OutVector4_1);\n\t\t\t\t\t\n\t\t\t\t\t
// Node: Property\n\t\t\t\t\t float _Property_51766AED_Out_0 = AlphaAttribute;\n\t\t\t\t\t\n\t\t\t\t\t
// Node: Multiply\n\t\t\t\t\t float _Multiply_E20EB4_Out_2;\n\t\t\t\t\t
Unity_Multiply_float(_FeatherStep_AB165F9_OutVector4_1, _Property_51766AED_Out_0,
_Multiply_E20EB4_Out_2);\n\t\t\t\t\t\n\t\t\t\t\t // Node: Property\n\t\t\t\t\t
float _Property_7EE56B4_Out_0 = SoftParticleDistance;\n\t\t\t\t\t\n\t\t\t\t\t
// Node: SoftParticle\n\t\t\t\t\t Bindings_SoftParticle_30b7e1d9500bb7e4c8d0ae6c56a9e9a1
_SoftParticle_7A02D705;\n\t\t\t\t\t _SoftParticle_7A02D705.ScreenPosition
= IN.ScreenPosition;\n\t\t\t\t\t float _SoftParticle_7A02D705_Opacity_1;\n\t\t\t\t\t
_SoftParticle_7A02D705_Opacity_1);\n\t\t\t\n\t\t\t // Node: Multiply\n\t\t\t
float _Multiply_6C055CC6_Out_2;\n\t\t\t Unity_Multiply_float(_Multiply_E20EB4_Out_2,
_SoftParticle_7A02D705_Opacity_1, _Multiply_6C055CC6_Out_2);\n\t\t\t\n\t\t\t
// Visual Effect Master\n\t\t\t SG_Output_d7b8de4299b5e51498519b52bb4a3da3
OUT;\n\t\t\t OUT.Alpha_4 = _Multiply_6C055CC6_Out_2;\n\t\t\t return OUT;\n\t\t\t}\n\t\t\t\n\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t float3 ColorAttribute = i.ColorAttribute;float
AlphaAttribute = i.AlphaAttribute;float SoftParticleDistance = i.SoftParticleDistance;\n\t\t\t
\n\t\t\t //Call Shader Graph\n\t\t\t SG_Input_d7b8de4299b5e51498519b52bb4a3da3
INSG = (SG_Input_d7b8de4299b5e51498519b52bb4a3da3)0;\n\t\t\t float3
posRelativeWS = VFXGetPositionRWS(i.VFX_VARYING_POSWS);\n\t\t\t float3
posAbsoluteWS = VFXGetPositionAWS(i.VFX_VARYING_POSWS);\n\t\t\t INSG.ScreenPosition
= ComputeScreenPos(VFXTransformPositionWorldToClip(i.VFX_VARYING_POSWS), _ProjectionParams.x);\n\t\t\t
INSG.uv0.xy = i.uv;\n\t\t\t \n\t\t\t SG_Output_d7b8de4299b5e51498519b52bb4a3da3
OUTSG = SG_Evaluate_d7b8de4299b5e51498519b52bb4a3da3(INSG,AlphaAttribute, SoftParticleDistance);\n\t\t\t
\n\n\t\t\t \n\t\t\t float alpha = OUTSG.Alpha_4;\n\t\t\t #else\n\t\t\t
float alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
_SoftParticle_7A02D705_Opacity_1);\n\t\t\t\t\t\n\t\t\t\t\t // Node: Multiply\n\t\t\t\t\t
float _Multiply_6C055CC6_Out_2;\n\t\t\t\t\t Unity_Multiply_float(_Multiply_E20EB4_Out_2,
_SoftParticle_7A02D705_Opacity_1, _Multiply_6C055CC6_Out_2);\n\t\t\t\t\t\n\t\t\t\t\t
// Visual Effect Master\n\t\t\t\t\t SG_Output_d7b8de4299b5e51498519b52bb4a3da3
OUT;\n\t\t\t\t\t OUT.Alpha_4 = _Multiply_6C055CC6_Out_2;\n\t\t\t\t\t
return OUT;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t float3 ColorAttribute = i.ColorAttribute;float
AlphaAttribute = i.AlphaAttribute;float SoftParticleDistance = i.SoftParticleDistance;\n\t\t\t\t\t
//Call Shader Graph\n\t\t\t\t\t SG_Input_d7b8de4299b5e51498519b52bb4a3da3
INSG = (SG_Input_d7b8de4299b5e51498519b52bb4a3da3)0;\n\t\t\t\t\t float3
posRelativeWS = VFXGetPositionRWS(i.VFX_VARYING_POSWS);\n\t\t\t\t\t
float3 posAbsoluteWS = VFXGetPositionAWS(i.VFX_VARYING_POSWS);\n\t\t\t\t\t
INSG.ScreenPosition = ComputeScreenPos(VFXTransformPositionWorldToClip(i.VFX_VARYING_POSWS),
_ProjectionParams.x);\n\t\t\t\t\t INSG.uv0.xy = i.uv;\n\t\t\t\t\t
\n\t\t\t\t\t SG_Output_d7b8de4299b5e51498519b52bb4a3da3 OUTSG = SG_Evaluate_d7b8de4299b5e51498519b52bb4a3da3(INSG,AlphaAttribute,
SoftParticleDistance);\n\t\t\t\t\t \n\t\t\t\n\t\t\t\t\t float
alpha = OUTSG.Alpha_4;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha
= VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t#if
VFX_SHADERGRAPH\n\t\t\t#define REQUIRE_DEPTH_TEXTURE\n\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl\"\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Packing.hlsl\"\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl\"\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl\"\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinGIUtilities.hlsl\"\n\t\t\t\t\t#ifndef
SHADERPASS\n\t\t\t\t\t#error Shaderpass should be defined at this stage.\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderGraphFunctions.hlsl\"\n\t\t\t\t\t\n\t\t\t\n\t\t\t#include

float angleZ;\n float pivotX;\n float pivotY;\n float pivotZ;\n
float scaleX;\n float scaleY;\n float scaleZ;\n float age;\n};\n\nstruct
SourceAttributes\n{\n};\n\nTexture2D baseColorMap;\nSamplerState samplerbaseColorMap;\nfloat4
baseColorMap_TexelSize;\n\n\r\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n\r\nByteAddressBuffer
baseColorMap_TexelSize;\n\n\n\r\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n\r\nByteAddressBuffer
attributeBuffer;\r\nRWByteAddressBuffer elementToVFXBuffer;\r\n#if VFX_USE_ALIVE_CURRENT\r\nStructuredBuffer<uint>
deadListOut;\r\n#endif\r\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\nStructuredBuffer<uint>
indirectBuffer;\r\n#endif\r\n\r\nCBUFFER_START(updateParams)\r\n\tuint nbMax;\r\n\tuint

798
Assets/Samples/Butterflies/Butterflies.vfx
文件差异内容过多而无法显示
查看文件

199
Assets/Samples/EllenHologram/EllenHologram.vfx


VFX_USE_COLOR_CURRENT 1\n#define VFX_USE_PARTICLEID_CURRENT 1\n#define VFX_USE_ALIVE_CURRENT
1\n#define VFX_USE_AGE_CURRENT 1\n#define VFX_WORLD_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float4x4 ClipToVFX_c;\n float3 Position_d;\n float Size_b;\n float3
uniform_f;\n uint PADDING_0;\n float2 Camera_pixelDimensions_c;\n
uniform_a;\n uint PADDING_0;\n float2 Camera_pixelDimensions_c;\n
Camera_depthBuffer_c;\nSamplerState samplerCamera_depthBuffer_c;\nfloat4 Camera_depthBuffer_c_TexelSize;\nTexture2DArray
Camera_colorBuffer_c;\nSamplerState samplerCamera_colorBuffer_c;\nfloat4 Camera_colorBuffer_c_TexelSize;\n\n\r\n\r\n#define
Camera_depthBuffer_c;\nSamplerState samplerCamera_depthBuffer_c;\nfloat4 Camera_depthBuffer_c_TexelSize;\n\nTexture2DArray
Camera_colorBuffer_c;\nSamplerState samplerCamera_colorBuffer_c;\nfloat4 Camera_colorBuffer_c_TexelSize;\n\n\n\r\n\r\n#define
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer
attributeBuffer;\r\nByteAddressBuffer sourceAttributeBuffer;\r\n\r\nCBUFFER_START(initParams)\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n uint nbSpawned;\t\t\t\t\t// Numbers of particle

Position) /*attribute:position Composition:Add Source:Slot Random:Off channels:XYZ
*/\n{\n position += Position;\n}\nvoid SetAttribute_CAC29747(inout float3
position, float3 Position) /*attribute:position Composition:Overwrite Source:Slot
Random:Off channels:XYZ */\n{\n position = Position;\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
Random:Off channels:XYZ */\n{\n position = Position;\n}\n\n\r\n\r\n// Due
to a bug in HLSL compiler, disable spurious \"unitialized variable\" due to
mid function return statement\r\n#pragma warning(push)\r\n#pragma warning(disable
: 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

GetVFXSampler(Camera_colorBuffer_c, samplerCamera_colorBuffer_c), (float)1,
(uint)1, ClipToVFX_c);\n }\n SetAttribute_C707D62A( /*inout */attributes.position,
Position_d);\n {\n float3 tmp_bc = attributes.position /
uniform_f;\n float3 tmp_bd = floor(tmp_bc);\n float3
tmp_be = tmp_bd * uniform_f;\n SetAttribute_CAC29747( /*inout */attributes.position,
uniform_a;\n float3 tmp_bd = floor(tmp_bc);\n float3
tmp_be = tmp_bd * uniform_a;\n SetAttribute_CAC29747( /*inout */attributes.position,
tmp_be);\n }\n \n\r\n\t\t\r\n#if VFX_USE_ALIVE_CURRENT\r\n
if (attributes.alive)\r\n#endif \r\n {\r\n#if USE_DEAD_LIST\r\n\t
uint deadIndex = deadListIn.DecrementCounter();\r\n uint index =

name: '[System 1]Output Particle Quad'
source: "Shader \"Hidden/VFX/EllenHologram/System 1/Output Particle Quad\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+400\" \"IgnoreProjector\"=\"True\"
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
SrcAlpha One , Zero One\n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

1\n\t\t#define VFX_USE_SCALEY_CURRENT 1\n\t\t#define VFX_USE_SCALEZ_CURRENT
1\n\t\t#define VFX_COLORMAPPING_DEFAULT 1\n\t\t#define IS_TRANSPARENT_PARTICLE
1\n\t\t#define VFX_BLENDMODE_ADD 1\n\t\t#define USE_CAST_SHADOWS_PASS 1\n\t\t#define
USE_EXPOSURE_WEIGHT 1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
USE_EXPOSURE_WEIGHT 1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
float uniform_b;\n\t\t float uniform_c;\n\t\t float uniform_d;\n\t\t
float uniform_e;\n\t\t float uniform_f;\n\t\t uint3 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
float uniform_a;\n\t\t float uniform_b;\n\t\t float uniform_c;\n\t\t
float uniform_d;\n\t\t float uniform_e;\n\t\t uint3 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float size;\n\t\t float3 position;\n\t\t float3
color;\n\t\t bool alive;\n\t\t float alpha;\n\t\t float3 axisX;\n\t\t
float3 axisY;\n\t\t float3 axisZ;\n\t\t float angleX;\n\t\t float

mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t{\n\t\t\t\t
float tmp_bb = attributes.position[1];\n\t\t\t\t float2 tmp_bc = float2(tmp_bb,
uniform_d);\n\t\t\t\t float3 tmp_bf = GeneratePerlinNoise(tmp_bc, float3(32,
uniform_c);\n\t\t\t\t float3 tmp_bf = GeneratePerlinNoise(tmp_bc, float3(32,
float tmp_bk = tmp_bi / (float)2;\n\t\t\t\t float tmp_bl = tmp_bk * uniform_e;\n\t\t\t\t
float tmp_bm = uniform_c + tmp_bl;\n\t\t\t\t float tmp_bn = saturate(tmp_bm);\n\t\t\t\t
float tmp_bo = tmp_bn * uniform_f;\n\t\t\t\t float tmp_bp = uniform_b +
float tmp_bk = tmp_bi / (float)2;\n\t\t\t\t float tmp_bl = tmp_bk * uniform_d;\n\t\t\t\t
float tmp_bm = uniform_b + tmp_bl;\n\t\t\t\t float tmp_bn = saturate(tmp_bm);\n\t\t\t\t
float tmp_bo = tmp_bn * uniform_e;\n\t\t\t\t float tmp_bp = uniform_a +
tmp_bo;\n\t\t\t\t float3 tmp_bq = float3(tmp_bp, tmp_bp, tmp_bp);\n\t\t\t\t
SetAttribute_545F0ED( /*inout */attributes.color, tmp_bq);\n\t\t\t\t}\n\t\t\t\tOrient_4(
/*inout */attributes.axisX, /*inout */attributes.axisY, /*inout */attributes.axisZ);\n\t\t\t\tSubpixelAA(attributes.position,

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t{\n\t\t\t\t
float tmp_bb = attributes.position[1];\n\t\t\t\t float2 tmp_bc = float2(tmp_bb,
uniform_d);\n\t\t\t\t float3 tmp_bf = GeneratePerlinNoise(tmp_bc, float3(32,
uniform_c);\n\t\t\t\t float3 tmp_bf = GeneratePerlinNoise(tmp_bc, float3(32,
float tmp_bk = tmp_bi / (float)2;\n\t\t\t\t float tmp_bl = tmp_bk * uniform_e;\n\t\t\t\t
float tmp_bm = uniform_c + tmp_bl;\n\t\t\t\t float tmp_bn = saturate(tmp_bm);\n\t\t\t\t
float tmp_bo = tmp_bn * uniform_f;\n\t\t\t\t float tmp_bp = uniform_b +
float tmp_bk = tmp_bi / (float)2;\n\t\t\t\t float tmp_bl = tmp_bk * uniform_d;\n\t\t\t\t
float tmp_bm = uniform_b + tmp_bl;\n\t\t\t\t float tmp_bn = saturate(tmp_bm);\n\t\t\t\t
float tmp_bo = tmp_bn * uniform_e;\n\t\t\t\t float tmp_bp = uniform_a +
tmp_bo;\n\t\t\t\t float3 tmp_bq = float3(tmp_bp, tmp_bp, tmp_bp);\n\t\t\t\t
SetAttribute_545F0ED( /*inout */attributes.color, tmp_bq);\n\t\t\t\t}\n\t\t\t\tOrient_4(
/*inout */attributes.axisX, /*inout */attributes.axisY, /*inout */attributes.axisZ);\n\t\t\t\tSubpixelAA(attributes.position,

Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t{\n\t\t\t\t
float tmp_bb = attributes.position[1];\n\t\t\t\t float2 tmp_bc = float2(tmp_bb,
uniform_d);\n\t\t\t\t float3 tmp_bf = GeneratePerlinNoise(tmp_bc, float3(32,
uniform_c);\n\t\t\t\t float3 tmp_bf = GeneratePerlinNoise(tmp_bc, float3(32,
float tmp_bk = tmp_bi / (float)2;\n\t\t\t\t float tmp_bl = tmp_bk * uniform_e;\n\t\t\t\t
float tmp_bm = uniform_c + tmp_bl;\n\t\t\t\t float tmp_bn = saturate(tmp_bm);\n\t\t\t\t
float tmp_bo = tmp_bn * uniform_f;\n\t\t\t\t float tmp_bp = uniform_b +
float tmp_bk = tmp_bi / (float)2;\n\t\t\t\t float tmp_bl = tmp_bk * uniform_d;\n\t\t\t\t
float tmp_bm = uniform_b + tmp_bl;\n\t\t\t\t float tmp_bn = saturate(tmp_bm);\n\t\t\t\t
float tmp_bo = tmp_bn * uniform_e;\n\t\t\t\t float tmp_bp = uniform_a +
tmp_bo;\n\t\t\t\t float3 tmp_bq = float3(tmp_bp, tmp_bp, tmp_bp);\n\t\t\t\t
SetAttribute_545F0ED( /*inout */attributes.color, tmp_bq);\n\t\t\t\t}\n\t\t\t\tOrient_4(
/*inout */attributes.axisX, /*inout */attributes.axisY, /*inout */attributes.axisZ);\n\t\t\t\tSubpixelAA(attributes.position,

name: '[System 1]Output Particle Quad'
source: "Shader \"Hidden/VFX/EllenHologram/System 1/Output Particle Quad\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+400\" \"IgnoreProjector\"=\"True\"
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
SrcAlpha One , Zero One\n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

1\n\t\t#define VFX_USE_SCALEX_CURRENT 1\n\t\t#define VFX_USE_SCALEY_CURRENT
1\n\t\t#define VFX_USE_SCALEZ_CURRENT 1\n\t\t#define VFX_COLORMAPPING_DEFAULT
1\n\t\t#define IS_TRANSPARENT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_ADD 1\n\t\t#define
VFX_BYPASS_EXPOSURE 1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_BYPASS_EXPOSURE 1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
float uniform_d;\n\t\t uint2 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
float uniform_a;\n\t\t uint2 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float size;\n\t\t float3 position;\n\t\t float3
color;\n\t\t uint particleId;\n\t\t bool alive;\n\t\t float alpha;\n\t\t
float3 axisX;\n\t\t float3 axisY;\n\t\t float3 axisZ;\n\t\t float

mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\tSetAttribute_CEEAF35C(
/*inout */attributes.alpha, Alpha_a);\n\t\t\t\tSetAttribute_3278B22F( /*inout
*/attributes.size, Size_b);\n\t\t\t\t{\n\t\t\t\t uint tmp_ba = attributes.particleId
/ asuint(uniform_d);\n\t\t\t\t uint tmp_bb = tmp_ba * asuint(uniform_d);\n\t\t\t\t
/ asuint(uniform_a);\n\t\t\t\t uint tmp_bb = tmp_ba * asuint(uniform_a);\n\t\t\t\t
uint tmp_bc = attributes.particleId - tmp_bb;\n\t\t\t\t float tmp_bd = (float)tmp_bc;\n\t\t\t\t
bool tmp_bf = tmp_bd == (float)0;\n\t\t\t\t SetAttribute_ED2BDC15( /*inout
*/attributes.alive, tmp_bf);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t ConnectTarget_0(

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\tSetAttribute_CEEAF35C(
/*inout */attributes.alpha, Alpha_a);\n\t\t\t\tSetAttribute_3278B22F( /*inout
*/attributes.size, Size_b);\n\t\t\t\t{\n\t\t\t\t uint tmp_ba = attributes.particleId
/ asuint(uniform_d);\n\t\t\t\t uint tmp_bb = tmp_ba * asuint(uniform_d);\n\t\t\t\t
/ asuint(uniform_a);\n\t\t\t\t uint tmp_bb = tmp_ba * asuint(uniform_a);\n\t\t\t\t
uint tmp_bc = attributes.particleId - tmp_bb;\n\t\t\t\t float tmp_bd = (float)tmp_bc;\n\t\t\t\t
bool tmp_bf = tmp_bd == (float)0;\n\t\t\t\t SetAttribute_ED2BDC15( /*inout
*/attributes.alive, tmp_bf);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t ConnectTarget_0(

index: 80
- nameId: Position_d
index: 73
- nameId: uniform_f
- nameId: uniform_a
index: 52
- nameId: Camera_depthBuffer_c
index: 72

index: 0
temporaryBuffers: []
values:
- nameId: uniform_a
index: 46
index: 46
- nameId: uniform_c
- nameId: uniform_d
- nameId: uniform_c
- nameId: uniform_d
index: 25
index: 25
- nameId: uniform_f
index: 51
- nameId: mainTexture
index: 65

index: 74
- nameId: Size_b
index: 75
- nameId: uniform_d
- nameId: uniform_a
index: 35
- nameId: TargetPosition_d
index: 77

658
Assets/Samples/GenieMagicLamp/VFX/GenieFX.vfx


Random:Off channels:XYZ */\n{\n size = Size;\n}\nvoid SetAttribute_D515195D(inout
float scaleX, inout float scaleY, inout uint seed, float2 A, float2 B) /*attribute:scale
Composition:Overwrite Source:Slot Random:Uniform channels:XY */\n{\n scaleX
= lerp(A.x,B.x,RAND);\n scaleY = lerp(A.y,B.y,RAND);\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
= lerp(A.x,B.x,RAND);\n scaleY = lerp(A.y,B.y,RAND);\n}\n\n\r\n\r\n// Due
to a bug in HLSL compiler, disable spurious \"unitialized variable\" due to
mid function return statement\r\n#pragma warning(push)\r\n#pragma warning(disable
: 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

VFX_USE_ALIVE_CURRENT 1\n#define VFX_USE_EVENTCOUNT_CURRENT 1\n#define VFX_USE_PARTICLEID_CURRENT
1\n#define VFX_USE_OLDPOSITION_CURRENT 1\n#define VFX_WORLD_SPACE 1\n#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float4x4 uniform_l;\n float4 uniform_j;\n float4 uniform_k;\n float4
uniform_n;\n float3 uniform_b;\n float uniform_c;\n float3 uniform_d;\n
float uniform_g;\n float3 uniform_e;\n float uniform_h;\n float3 uniform_f;\n
float uniform_i;\n float3 uniform_m;\n float deltaTime_c;\nCBUFFER_END\n\nstruct
float4x4 uniform_k;\n float4 uniform_i;\n float4 uniform_j;\n float4
uniform_m;\n float3 uniform_a;\n float uniform_b;\n float3 uniform_c;\n
float uniform_f;\n float3 uniform_d;\n float uniform_g;\n float3 uniform_e;\n
float uniform_h;\n float3 uniform_l;\n float deltaTime_c;\nCBUFFER_END\n\nstruct
samplerattributeMap_b;\nfloat4 attributeMap_b_TexelSize;\nAppendStructuredBuffer<uint>
samplerattributeMap_b;\nfloat4 attributeMap_b_TexelSize;\n\nAppendStructuredBuffer<uint>
eventListOut_a;\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT &&
!HAS_STRIPS)\r\n\r\nRWByteAddressBuffer attributeBuffer;\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint>
deadListOut;\r\n#endif\r\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\nRWStructuredBuffer<uint>

HAS_STRIPS\r\n const StripData stripData = GetStripDataFromParticleIndex(index,
PARTICLE_PER_STRIP_COUNT);\r\n InitStripAttributes(index, attributes,
stripData);\r\n#endif\r\n\t\t\t\r\n\t\t\t{\n\t\t\t float tmp_bp = attributes.age
/ attributes.lifetime;\n\t\t\t uint tmp_bq = attributes.particleId ^ asuint(uniform_c);\n\t\t\t
/ attributes.lifetime;\n\t\t\t uint tmp_bq = attributes.particleId ^ asuint(uniform_b);\n\t\t\t
float3 tmp_ca = uniform_b * tmp_bz;\n\t\t\t float3 tmp_cb = tmp_ca * tmp_bz;\n\t\t\t
float3 tmp_cc = tmp_cb * tmp_bz;\n\t\t\t float3 tmp_cd = uniform_d * tmp_bz;\n\t\t\t
float3 tmp_ca = uniform_a * tmp_bz;\n\t\t\t float3 tmp_cb = tmp_ca * tmp_bz;\n\t\t\t
float3 tmp_cc = tmp_cb * tmp_bz;\n\t\t\t float3 tmp_cd = uniform_c * tmp_bz;\n\t\t\t
tmp_ch = tmp_cc + tmp_cg;\n\t\t\t float3 tmp_ci = uniform_e * tmp_bz;\n\t\t\t
tmp_ch = tmp_cc + tmp_cg;\n\t\t\t float3 tmp_ci = uniform_d * tmp_bz;\n\t\t\t
float3 tmp_cl = tmp_ch + tmp_ck;\n\t\t\t float3 tmp_cm = uniform_f * tmp_cf;\n\t\t\t
float3 tmp_cl = tmp_ch + tmp_ck;\n\t\t\t float3 tmp_cm = uniform_e * tmp_cf;\n\t\t\t
^ asuint(uniform_g);\n\t\t\t float tmp_cs = FixedRand(tmp_cr);\n\t\t\t
^ asuint(uniform_f);\n\t\t\t float tmp_cs = FixedRand(tmp_cr);\n\t\t\t
uint tmp_cw = attributes.particleId ^ asuint(uniform_h);\n\t\t\t float tmp_cx
uint tmp_cw = attributes.particleId ^ asuint(uniform_g);\n\t\t\t float tmp_cx
^ asuint(uniform_i);\n\t\t\t float tmp_db = FixedRand(tmp_da);\n\t\t\t
^ asuint(uniform_h);\n\t\t\t float tmp_db = FixedRand(tmp_da);\n\t\t\t
= SampleCurve(uniform_j,tmp_bp);\n\t\t\t float tmp_dj = tmp_dh * (float)3;\n\t\t\t
= SampleCurve(uniform_i,tmp_bp);\n\t\t\t float tmp_dj = tmp_dh * (float)3;\n\t\t\t
tmp_dn = SampleCurve(uniform_k,tmp_bp);\n\t\t\t float3 tmp_do = float3(tmp_dn,
tmp_dn, tmp_dn);\n\t\t\t float3 tmp_dp = mul(uniform_l, float4(attributes.position,
tmp_dn = SampleCurve(uniform_j,tmp_bp);\n\t\t\t float3 tmp_do = float3(tmp_dn,
tmp_dn, tmp_dn);\n\t\t\t float3 tmp_dp = mul(uniform_k, float4(attributes.position,
tmp_bo = uniform_m + attributes.position;\n\t\t\t float3 tmp_bq = tmp_bo
tmp_bo = uniform_l + attributes.position;\n\t\t\t float3 tmp_bq = tmp_bo
attributes.age / attributes.lifetime;\n\t\t\t float tmp_bu = SampleCurve(uniform_n,tmp_bt);\n\t\t\t
attributes.age / attributes.lifetime;\n\t\t\t float tmp_bu = SampleCurve(uniform_m,tmp_bt);\n\t\t\t
float tmp_bw = tmp_bu * (float)1.20000005;\n\t\t\t float3 tmp_bx = float3(tmp_bw,
tmp_bw, tmp_bw);\n\t\t\t AttributeFromMap_6F69BFAE( /*inout */attributes.position,
GetVFXSampler(attributeMap_b, samplerattributeMap_b), tmp_bq, (float)0, float3(-0.5,

+ 0x4E200) << 2,asuint(attributes.position));\n\t\t\t\tattributeBuffer.Store((index
* 0x8 + 0x4E203) << 2,asuint(attributes.age));\n\t\t\t\tattributeBuffer.Store3((index
* 0x4 + 0x4E2000) << 2,asuint(attributes.oldPosition));\n\t\t\t\tfor (uint
i = 0; i < eventCount_a; ++i) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if
ia = 0; ia < eventCount_a; ++ia) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if
* 0x8 + 0x4E204) << 2,uint(attributes.alive));\n\t\t\t\tfor (uint i = 0; i
< eventCount_a; ++i) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if USE_DEAD_LIST
* 0x8 + 0x4E204) << 2,uint(attributes.alive));\n\t\t\t\tfor (uint ia = 0; ia
< eventCount_a; ++ia) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if USE_DEAD_LIST
&& !VFX_USE_STRIPALIVE_CURRENT\r\n\t\t\t\tuint deadIndex = deadListOut.IncrementCounter();\r\n\t\t\t\tdeadListOut[deadIndex]
= index;\r\n#endif\r\n\t\t\t}\r\n\t\t}\r\n#if USE_DEAD_LIST && VFX_USE_STRIPALIVE_CURRENT\r\n
else if (attributes.stripAlive)\r\n {\r\n if (STRIP_DATA_X(attachedStripDataBuffer,

stripData = GetStripDataFromParticleIndex(index, PARTICLE_PER_STRIP_COUNT);\r\n
InitStripAttributes(index, attributes, stripData);\r\n#endif\r\n\t\t\r\n\t\t{\n\t\t
float tmp_bp = attributes.age / attributes.lifetime;\n\t\t uint tmp_bq =
attributes.particleId ^ asuint(uniform_c);\n\t\t float tmp_br = FixedRand(tmp_bq);\n\t\t
attributes.particleId ^ asuint(uniform_b);\n\t\t float tmp_br = FixedRand(tmp_bq);\n\t\t
float3 tmp_bz = float3(tmp_by, tmp_by, tmp_by);\n\t\t float3 tmp_ca = uniform_b
float3 tmp_bz = float3(tmp_by, tmp_by, tmp_by);\n\t\t float3 tmp_ca = uniform_a
= tmp_cb * tmp_bz;\n\t\t float3 tmp_cd = uniform_d * tmp_bz;\n\t\t float3
= tmp_cb * tmp_bz;\n\t\t float3 tmp_cd = uniform_c * tmp_bz;\n\t\t float3
float3 tmp_ci = uniform_e * tmp_bz;\n\t\t float3 tmp_cj = tmp_ci * tmp_cf;\n\t\t
float3 tmp_ci = uniform_d * tmp_bz;\n\t\t float3 tmp_cj = tmp_ci * tmp_cf;\n\t\t
float3 tmp_cm = uniform_f * tmp_cf;\n\t\t float3 tmp_cn = tmp_cm * tmp_cf;\n\t\t
float3 tmp_cm = uniform_e * tmp_cf;\n\t\t float3 tmp_cn = tmp_cm * tmp_cf;\n\t\t
uint tmp_cr = attributes.particleId ^ asuint(uniform_g);\n\t\t float tmp_cs
uint tmp_cr = attributes.particleId ^ asuint(uniform_f);\n\t\t float tmp_cs
asuint(uniform_h);\n\t\t float tmp_cx = FixedRand(tmp_cw);\n\t\t float
asuint(uniform_g);\n\t\t float tmp_cx = FixedRand(tmp_cw);\n\t\t float
uint tmp_da = attributes.particleId ^ asuint(uniform_i);\n\t\t float tmp_db
uint tmp_da = attributes.particleId ^ asuint(uniform_h);\n\t\t float tmp_db
0.200000003);\n\t\t float tmp_dh = SampleCurve(uniform_j,tmp_bp);\n\t\t
0.200000003);\n\t\t float tmp_dh = SampleCurve(uniform_i,tmp_bp);\n\t\t
tmp_cp + tmp_dl;\n\t\t float tmp_dn = SampleCurve(uniform_k,tmp_bp);\n\t\t
float3 tmp_do = float3(tmp_dn, tmp_dn, tmp_dn);\n\t\t float3 tmp_dp = mul(uniform_l,
tmp_cp + tmp_dl;\n\t\t float tmp_dn = SampleCurve(uniform_j,tmp_bp);\n\t\t
float3 tmp_do = float3(tmp_dn, tmp_dn, tmp_dn);\n\t\t float3 tmp_dp = mul(uniform_k,
float3 tmp_bo = uniform_m + attributes.position;\n\t\t float3 tmp_bq = tmp_bo
float3 tmp_bo = uniform_l + attributes.position;\n\t\t float3 tmp_bq = tmp_bo
/ attributes.lifetime;\n\t\t float tmp_bu = SampleCurve(uniform_n,tmp_bt);\n\t\t
/ attributes.lifetime;\n\t\t float tmp_bu = SampleCurve(uniform_m,tmp_bt);\n\t\t
float tmp_bw = tmp_bu * (float)1.20000005;\n\t\t float3 tmp_bx = float3(tmp_bw,
tmp_bw, tmp_bw);\n\t\t AttributeFromMap_6F69BFAE( /*inout */attributes.position,
GetVFXSampler(attributeMap_b, samplerattributeMap_b), tmp_bq, (float)0, float3(-0.5,

* 0x8 + 0x4E200) << 2,asuint(attributes.position));\n\t\tattributeBuffer.Store((index
* 0x8 + 0x4E203) << 2,asuint(attributes.age));\n\t\tattributeBuffer.Store((index
* 0x8 + 0x4E204) << 2,uint(attributes.alive));\n\t\tattributeBuffer.Store3((index
* 0x4 + 0x4E2000) << 2,asuint(attributes.oldPosition));\n\t\tfor (uint i =
0; i < eventCount_a; ++i) eventListOut_a.Append(index);\n\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
* 0x4 + 0x4E2000) << 2,asuint(attributes.oldPosition));\n\t\tfor (uint ia =
0; ia < eventCount_a; ++ia) eventListOut_a.Append(index);\n\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
uint indirectIndex = indirectBuffer.IncrementCounter();\r\n\t\tindirectBuffer[indirectIndex]
= index;\r\n#endif\r\n#endif\r\n\t}\r\n}\r\n"
- compute: 0

\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
SrcAlpha One \n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

1\n\t\t#define VFX_USE_SCALEZ_CURRENT 1\n\t\t#define VFX_USE_OLDPOSITION_CURRENT
1\n\t\t#define VFX_COLORMAPPING_DEFAULT 1\n\t\t#define IS_TRANSPARENT_PARTICLE
1\n\t\t#define VFX_BLENDMODE_ADD 1\n\t\t#define VFX_BYPASS_EXPOSURE 1\n\t\t#define
VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_WORLD_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
float4 Scale_x_c;\n\t\t float3 Color_d;\n\t\t float gradient_b;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float lifetime;\n\t\t float3 position;\n\t\t

angleY;\n\t\t float angleZ;\n\t\t float pivotX;\n\t\t float pivotY;\n\t\t
float pivotZ;\n\t\t float scaleZ;\n\t\t float3 oldPosition;\n\t\t};\n\t\t\n\t\tstruct
SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D mainTexture;\n\t\tSamplerState
samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

Source:Slot Random:Uniform channels:X */\n{\n size = lerp(A,B,RAND);\n}\nvoid
SetAttribute_CEEAF046(inout float alpha, inout uint seed, float A, float B)
/*attribute:alpha Composition:Overwrite Source:Slot Random:Uniform channels:XYZ
*/\n{\n alpha = lerp(A,B,RAND);\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout
uint particleIndex, uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
*/\n{\n alpha = lerp(A,B,RAND);\n}\n\n\r\n\r\n// Due to a bug in HLSL compiler,
disable spurious \"unitialized variable\" due to mid function return statement\r\n#pragma
warning(push)\r\n#pragma warning(disable : 4000)\r\n#if HAS_STRIPS\r\nbool
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

1\n#define VFX_USE_VELOCITY_CURRENT 1\n#define VFX_USE_TEXINDEX_CURRENT 1\n#define
VFX_USE_AGE_CURRENT 1\n#define VFX_USE_PARTICLEID_CURRENT 1\n#define VFX_USE_ALIVE_CURRENT
1\n#define VFX_HAS_INDIRECT_DRAW 1\n#define VFX_WORLD_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float4 FrameRate_a;\n float3 uniform_d;\n float deltaTime_a;\n float3
uniform_f;\n float uniform_e;\n float3 uniform_g;\n uint PADDING_0;\n
float3 uniform_h;\n uint PADDING_1;\nCBUFFER_END\n\nstruct Attributes\n{\n
float4 FrameRate_a;\n float3 uniform_a;\n float deltaTime_a;\n float3
uniform_c;\n float uniform_b;\n float3 uniform_d;\n uint PADDING_0;\n
float3 uniform_e;\n uint PADDING_1;\nCBUFFER_END\n\nstruct Attributes\n{\n
float lifetime;\n float3 position;\n float3 velocity;\n float texIndex;\n
float age;\n uint particleId;\n bool alive;\n};\n\nstruct SourceAttributes\n{\n};\n\n\n\r\n\r\n#define
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer

stripData);\r\n#endif\r\n\t\t\t\r\n\t\t\tFlipbookPlay_1( /*inout */attributes.texIndex,
attributes.age, attributes.lifetime, FrameRate_a, deltaTime_a);\n\t\t\t{\n\t\t\t
float tmp_bg = attributes.age / attributes.lifetime;\n\t\t\t uint tmp_bh
= attributes.particleId ^ asuint(uniform_e);\n\t\t\t float tmp_bi = FixedRand(tmp_bh);\n\t\t\t
= attributes.particleId ^ asuint(uniform_b);\n\t\t\t float tmp_bi = FixedRand(tmp_bh);\n\t\t\t
uniform_d * tmp_bq;\n\t\t\t float3 tmp_bs = tmp_br * tmp_bq;\n\t\t\t
float3 tmp_bt = tmp_bs * tmp_bq;\n\t\t\t float3 tmp_bu = uniform_f * tmp_bq;\n\t\t\t
uniform_a * tmp_bq;\n\t\t\t float3 tmp_bs = tmp_br * tmp_bq;\n\t\t\t
float3 tmp_bt = tmp_bs * tmp_bq;\n\t\t\t float3 tmp_bu = uniform_c * tmp_bq;\n\t\t\t
tmp_by = tmp_bt + tmp_bx;\n\t\t\t float3 tmp_bz = uniform_g * tmp_bq;\n\t\t\t
tmp_by = tmp_bt + tmp_bx;\n\t\t\t float3 tmp_bz = uniform_d * tmp_bq;\n\t\t\t
float3 tmp_cc = tmp_by + tmp_cb;\n\t\t\t float3 tmp_cd = uniform_h * tmp_bw;\n\t\t\t
float3 tmp_cc = tmp_by + tmp_cb;\n\t\t\t float3 tmp_cd = uniform_e * tmp_bw;\n\t\t\t
float3 tmp_ce = tmp_cd * tmp_bw;\n\t\t\t float3 tmp_cf = tmp_ce * tmp_bw;\n\t\t\t
float3 tmp_cg = tmp_cc + tmp_cf;\n\t\t\t SetAttribute_CAC29747( /*inout
*/attributes.position, tmp_cg);\n\t\t\t}\n\t\t\tEulerIntegration( /*inout */attributes.position,

stripData);\r\n#endif\r\n\t\t\r\n\t\tFlipbookPlay_1( /*inout */attributes.texIndex,
attributes.age, attributes.lifetime, FrameRate_a, deltaTime_a);\n\t\t{\n\t\t
float tmp_bg = attributes.age / attributes.lifetime;\n\t\t uint tmp_bh =
attributes.particleId ^ asuint(uniform_e);\n\t\t float tmp_bi = FixedRand(tmp_bh);\n\t\t
attributes.particleId ^ asuint(uniform_b);\n\t\t float tmp_bi = FixedRand(tmp_bh);\n\t\t
float3 tmp_bq = float3(tmp_bp, tmp_bp, tmp_bp);\n\t\t float3 tmp_br = uniform_d
float3 tmp_bq = float3(tmp_bp, tmp_bp, tmp_bp);\n\t\t float3 tmp_br = uniform_a
= tmp_bs * tmp_bq;\n\t\t float3 tmp_bu = uniform_f * tmp_bq;\n\t\t float3
= tmp_bs * tmp_bq;\n\t\t float3 tmp_bu = uniform_c * tmp_bq;\n\t\t float3
float3 tmp_bz = uniform_g * tmp_bq;\n\t\t float3 tmp_ca = tmp_bz * tmp_bw;\n\t\t
float3 tmp_bz = uniform_d * tmp_bq;\n\t\t float3 tmp_ca = tmp_bz * tmp_bw;\n\t\t
float3 tmp_cd = uniform_h * tmp_bw;\n\t\t float3 tmp_ce = tmp_cd * tmp_bw;\n\t\t
float3 tmp_cd = uniform_e * tmp_bw;\n\t\t float3 tmp_ce = tmp_cd * tmp_bw;\n\t\t
float3 tmp_cf = tmp_ce * tmp_bw;\n\t\t float3 tmp_cg = tmp_cc + tmp_cf;\n\t\t
SetAttribute_CAC29747( /*inout */attributes.position, tmp_cg);\n\t\t}\n\t\tEulerIntegration(
/*inout */attributes.position, attributes.velocity, deltaTime_a);\n\t\tAge(

name: '[System 2]Magic Lamp - Smoke'
source: "Shader \"Hidden/VFX/GenieFX/System 2/Magic Lamp - Smoke\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\"
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
One OneMinusSrcAlpha \n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

HDRP_LIT 1\n\t\t#define HDRP_MATERIAL_TYPE_SIMPLELIT 1\n\t\t#define HDRP_ENABLE_ENV_LIGHT
1\n\t\t#define HDRP_USE_BASE_COLOR_MAP 1\n\t\t#define HDRP_USE_BASE_COLOR_MAP_COLOR
1\n\t\t#define HDRP_USE_BASE_COLOR_MAP_ALPHA 1\n\t\t#define HDRP_USE_BASE_COLOR
1\n\t\t#define FORCE_NORMAL_VARYING 1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
1\n\t\t#define FORCE_NORMAL_VARYING 1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_WORLD_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
float4 Size_c;\n\t\t float Color_b;\n\t\t uint3 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float lifetime;\n\t\t float3 position;\n\t\t

angleZ;\n\t\t float pivotX;\n\t\t float pivotY;\n\t\t float pivotZ;\n\t\t
float scaleX;\n\t\t float scaleY;\n\t\t float scaleZ;\n\t\t};\n\t\t\n\t\tstruct
SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D baseColorMap;\n\t\tSamplerState
samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

instanceID : SV_InstanceID;\n\t\t\t#define VFX_GET_INSTANCE_ID(i) i.instanceID\n\t\t#endif\n\t\t\n\t\tENDHLSL\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
{ \"LightMode\"=\"SceneSelectionPass\" }\n\t\t\n\t\t\tZWrite On\n\t\t\tBlend
Off\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#define VFX_PASSDEPTH VFX_PASSDEPTH_SELECTION\n\t\t\t#pragma
target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t#pragma multi_compile _
WRITE_NORMAL_BUFFER\n\t\t\t\n\t\t\t#define NEEDS_NORMAL\tdefined(WRITE_NORMAL_BUFFER)
target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t\n\t\t\t#define NEEDS_NORMAL\tdefined(WRITE_NORMAL_BUFFER)
|| FORCE_NORMAL_VARYING || SHADERGRAPH_NEEDS_NORMAL_DEPTHONLY\n\t\t\t#define
NEEDS_TANGENT\tUSE_NORMAL_MAP || USE_NORMAL_BENDING || SHADERGRAPH_NEEDS_TANGENT_DEPTHONLY\n\t\t\t\n\t\t\tstruct
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\n\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t // Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst
uint diffusionProfileHash = 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS
= VFXGetPositionRWS(i);\n\t\t\t\tfloat4 posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs
posInput = GetPositionInput(posSS.xy, _ScreenSize.zw, posSS.z, posSS.w, posRWS,
tileIndex);\n\t\t\t\t\n\t\t\t\tfloat alpha;\n\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\n\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t //TODO: investigate why this is needed\n\t\t\t preLightData.coatPartLambdaV
= 0;\n\t\t\t preLightData.coatIblR = 0;\n\t\t\t preLightData.coatIblF
= 0;\n\t\t\t \n\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t}\n\t\t\t\n\t\t\tvoid
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t#define SHADERPASS
SHADERPASS_MOTION_VECTORS\n\t\t\t\t\t#else\n\t\t\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\tvoid VFXGetHDRPLitData(out SurfaceData
surfaceData, out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData
preLightData, VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData,
uint2 tileIndex)\n\t\t\t\t\t{\t\n\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t\t
// Loads diffusion profile\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha;\n\t\t\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\t\t\n\t\t\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\t\t\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t //TODO: investigate why this is needed\n\t\t\t\t\t
preLightData.coatPartLambdaV = 0;\n\t\t\t\t\t preLightData.coatIblR = 0;\n\t\t\t\t\t
preLightData.coatIblF = 0;\n\t\t\t\t\t \n\t\t\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvoid
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t{\n\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t}\n\t\t\t\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t
\n\t\t\t#pragma fragment frag\n\t\t\tvoid frag(ps_input i\n\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t,
bool frontFace : SV_IsFrontFace\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t, out float4 outMotionVector : SV_Target0\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target1\n\t\t\t\t#endif\n\t\t\t#else\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t, out float4 outColor :
SV_Target0\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t\t)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\tconst VFXUVData uvData
= GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\tfloat3 bitangentWS = cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\tbitangentWS = cross(tangentWS,normalWS);\n\t\t\t\t\t\t\ttangentWS
*= faceMul;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3x3 tbn
= float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t \n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t
float alpha = VFXGetFragmentColor(i).a;\n\t\t\t #if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t
alpha *= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t
#endif\n\t\t\t #endif\n\t\t\t VFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t
#else\n\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t normalWS = mul(n,tbn);\n\t\t\t
#endif\n\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t
\n\t\t\t surface.normalWS = normalWS;\n\t\t\t \n\t\t\t
EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface), i.VFX_VARYING_POSCS.xy,
outNormalBuffer);\n\t\t\t #endif\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t\t\t{\n\t\t\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t, bool frontFace
: SV_IsFrontFace\n\t\t\t\t\t#endif\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t// We need the depth color as SV_Target0 for
alpha to coverage\n\t\t\t\t\t\t, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t,
out float4 outMotionVector : SV_Target1\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target2\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t//
When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t\t, out
float4 outMotionVector : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t//
We need the depth color as SV_Target0 for alpha to coverage\n\t\t\t\t\t\t,
out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#elif
defined(WRITE_NORMAL_BUFFER)\n\t\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outColor
: SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\t\t\tconst VFXUVData
uvData = GetUVData(i);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\t\t\tfloat3 bitangentWS =
cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\t\t\tbitangentWS =
cross(tangentWS,normalWS);\n\t\t\t\t\t\t\t\t\ttangentWS *= faceMul;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t\t\t
#else\n\t\t\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t\t\t normalWS = mul(n,tbn);\n\t\t\t\t\t
#endif\n\t\t\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t\t\t
surface.normalWS = normalWS;\n\t\t\t\t\t EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface),
i.VFX_VARYING_POSCS.xy, outNormalBuffer);\n\t\t\t\t\t #endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\toutMotionVector = encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t// We use depth prepass
for scene selection in the editor, this code allow to output the outline correctly\n\t\t\t\t\toutColor
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH ==
VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t//void\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH
undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t//
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\t//
We use depth prepass for scene selection in the editor, this code allow to
output the outline correctly\n\t\t\t\t\t\t\toutColor = float4(_ObjectId, _PassValue,
1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t//void\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined\n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"}\n\t\t\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma
target 4.5\n\t\t\t\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t#define LIGHTLOOP_TILE_PASS\n\t\t\t#define
_ENABLE_FOG_ON_TRANSPARENT\n\t\t\t#define _DISABLE_DECALS\n\t\t\t#define _BLENDMODE_ALPHA\n\t\t\t\n\n\t\t\t#pragma

Composition:Overwrite Source:Slot Random:Uniform channels:XY */\n{\n scaleX
= lerp(A.x,B.x,RAND);\n scaleY = lerp(A.y,B.y,RAND);\n}\nvoid SetAttribute_CEEAF046(inout
float alpha, inout uint seed, float A, float B) /*attribute:alpha Composition:Overwrite
Source:Slot Random:Uniform channels:XYZ */\n{\n alpha = lerp(A,B,RAND);\n}\n\n\r\n\r\n#if
HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
Source:Slot Random:Uniform channels:XYZ */\n{\n alpha = lerp(A,B,RAND);\n}\n\n\r\n\r\n//
Due to a bug in HLSL compiler, disable spurious \"unitialized variable\" due
to mid function return statement\r\n#pragma warning(push)\r\n#pragma warning(disable
: 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

1\n#define VFX_USE_ALIVE_CURRENT 1\n#define VFX_WORLD_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float4x4 InvFieldTransform_b;\n float4x4 FieldTransform_b;\n float4x4
InvFieldTransform_c;\n float4x4 FieldTransform_c;\n float4 FrameRate_a;\n
float4 uniform_j;\n float3 uniform_g;\n float deltaTime_a;\n float
uniform_f;\n uint3 PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n
float4 uniform_c;\n float3 uniform_b;\n float deltaTime_a;\n float
uniform_a;\n uint3 PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n
DistanceField_b_TexelSize;\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT
DistanceField_b_TexelSize;\n\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT
&& !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer attributeBuffer;\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint>
deadListOut;\r\n#endif\r\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\nRWStructuredBuffer<uint>
indirectBuffer;\r\n#endif\r\n\r\n#if HAS_STRIPS\r\nRWBuffer<uint> stripDataBuffer;\r\n#endif\r\n\r\n#if

+= outsideDist - 0.5f;\n dir = normalize(float3(FieldTransform[0][3],FieldTransform[1][3],FieldTransform[2][3])
- position);\n }\n else\n {\n // compute normal\n dir
= SampleSDFDerivativesFast(DistanceField, coord, dist);\n if (dist >
0)\n dir = -dir;\n dir = normalize(mul(FieldTransform,float4(dir,0)));\n
0)\n dir = -dir;\n dir = normalize(mul(FieldTransform,float4(dir,0)).xyz);\n
}\n \n float distToSurface = abs(dist);\n \n float spdNormal =
dot(dir,velocity);\n float ratio = smoothstep(0.0,stickDistance * 2.0,abs(distToSurface));\n
float tgtSpeed = sign(distToSurface) * attractionSpeed * ratio;\n float

stripData);\r\n#endif\r\n\t\t\t\r\n\t\t\tFlipbookPlay_1( /*inout */attributes.texIndex,
attributes.age, attributes.lifetime, FrameRate_a, deltaTime_a);\n\t\t\t{\n\t\t\t
float tmp_bi = attributes.age / attributes.lifetime;\n\t\t\t uint tmp_bk
= attributes.particleId ^ asuint(uniform_f);\n\t\t\t float tmp_bl = FixedRand(tmp_bk);\n\t\t\t
= attributes.particleId ^ asuint(uniform_a);\n\t\t\t float tmp_bl = FixedRand(tmp_bk);\n\t\t\t
float tmp_bp = tmp_bi * tmp_bo;\n\t\t\t float3 tmp_bq = uniform_g - attributes.position;\n\t\t\t
float tmp_bp = tmp_bi * tmp_bo;\n\t\t\t float3 tmp_bq = uniform_b - attributes.position;\n\t\t\t
float3 tmp_br = tmp_bq * tmp_bq;\n\t\t\t float tmp_bs = tmp_br[2];\n\t\t\t
float tmp_bt = tmp_br[1];\n\t\t\t float tmp_bu = tmp_bs + tmp_bt;\n\t\t\t
float tmp_bv = tmp_br[0];\n\t\t\t float tmp_bw = tmp_bu + tmp_bv;\n\t\t\t

ConformToSDF( /*inout */attributes.velocity, attributes.position, attributes.mass,
GetVFXSampler(DistanceField_b, samplerDistanceField_b), InvFieldTransform_b,
FieldTransform_b, tmp_bp, tmp_cf, (float)0.100000001, (float)200, deltaTime_a);\n\t\t\t}\n\t\t\t{\n\t\t\t
float3 tmp_bi = uniform_g - attributes.position;\n\t\t\t float3 tmp_bj =
float3 tmp_bi = uniform_b - attributes.position;\n\t\t\t float3 tmp_bj =
float tmp_bw = SampleCurve(uniform_j,tmp_bv);\n\t\t\t float tmp_by = tmp_bw
float tmp_bw = SampleCurve(uniform_c,tmp_bv);\n\t\t\t float tmp_by = tmp_bw
* (float)40;\n\t\t\t float tmp_ca = tmp_bw * (float)15;\n\t\t\t float
tmp_cb = max(tmp_ca, (float)0);\n\t\t\t Turbulence_18D(attributes.position,
/*inout */attributes.velocity, attributes.mass, InvFieldTransform_c, FieldTransform_c,

InitStripAttributes(index, attributes, stripData);\r\n#endif\r\n\t\t\r\n\t\tFlipbookPlay_1(
/*inout */attributes.texIndex, attributes.age, attributes.lifetime, FrameRate_a,
deltaTime_a);\n\t\t{\n\t\t float tmp_bi = attributes.age / attributes.lifetime;\n\t\t
uint tmp_bk = attributes.particleId ^ asuint(uniform_f);\n\t\t float tmp_bl
uint tmp_bk = attributes.particleId ^ asuint(uniform_a);\n\t\t float tmp_bl
float3 tmp_bq = uniform_g - attributes.position;\n\t\t float3 tmp_br = tmp_bq
float3 tmp_bq = uniform_b - attributes.position;\n\t\t float3 tmp_br = tmp_bq
* tmp_bq;\n\t\t float tmp_bs = tmp_br[2];\n\t\t float tmp_bt = tmp_br[1];\n\t\t
float tmp_bu = tmp_bs + tmp_bt;\n\t\t float tmp_bv = tmp_br[0];\n\t\t
float tmp_bw = tmp_bu + tmp_bv;\n\t\t float tmp_by = pow(tmp_bw, (float)0.5);\n\t\t

GetVFXSampler(DistanceField_b, samplerDistanceField_b), InvFieldTransform_b,
FieldTransform_b, tmp_bp, tmp_cf, (float)0.100000001, (float)200, deltaTime_a);\n\t\t}\n\t\t{\n\t\t
float3 tmp_bi = uniform_g - attributes.position;\n\t\t float3 tmp_bj = tmp_bi
float3 tmp_bi = uniform_b - attributes.position;\n\t\t float3 tmp_bj = tmp_bi
float tmp_bv = tmp_bu / (float)3;\n\t\t float tmp_bw = SampleCurve(uniform_j,tmp_bv);\n\t\t
float tmp_bv = tmp_bu / (float)3;\n\t\t float tmp_bw = SampleCurve(uniform_c,tmp_bv);\n\t\t
float tmp_by = tmp_bw * (float)40;\n\t\t float tmp_ca = tmp_bw * (float)15;\n\t\t
float tmp_cb = max(tmp_ca, (float)0);\n\t\t Turbulence_18D(attributes.position,
/*inout */attributes.velocity, attributes.mass, InvFieldTransform_c, FieldTransform_c,

name: '[System 3]Genie'
source: "Shader \"Hidden/VFX/GenieFX/System 3/Genie\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\"
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
SrcAlpha One \n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

VFX_USE_PIVOTY_CURRENT 1\n\t\t#define VFX_USE_PIVOTZ_CURRENT 1\n\t\t#define
VFX_USE_SCALEZ_CURRENT 1\n\t\t#define VFX_COLORMAPPING_DEFAULT 1\n\t\t#define
IS_TRANSPARENT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_ADD 1\n\t\t#define USE_CAST_SHADOWS_PASS
1\n\t\t#define VFX_BYPASS_EXPOSURE 1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
1\n\t\t#define VFX_BYPASS_EXPOSURE 1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
float uniform_d;\n\t\t uint2 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
float uniform_a;\n\t\t uint2 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float lifetime;\n\t\t float3 position;\n\t\t
float size;\n\t\t float scaleX;\n\t\t float scaleY;\n\t\t float alpha;\n\t\t
float age;\n\t\t float3 velocity;\n\t\t float3 color;\n\t\t bool alive;\n\t\t

SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D mainTexture;\n\t\tSamplerState
samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

attributes.position, attributes.velocity);\n\t\t\t\tColorOverLife_733E3(attributes.age,
attributes.lifetime, /*inout */attributes.color, /*inout */attributes.alpha,
gradient_b);\n\t\t\t\t{\n\t\t\t\t float tmp_bd = attributes.position[1];\n\t\t\t\t
float tmp_be = tmp_bd - uniform_d;\n\t\t\t\t AttributeFromCurve_16A543C6(
float tmp_be = tmp_bd - uniform_a;\n\t\t\t\t AttributeFromCurve_16A543C6(
/*inout */attributes.alpha, Alpha_c, tmp_be);\n\t\t\t\t}\n\t\t\t\tAttributeFromCurve_7DF18695(
/*inout */attributes.size, attributes.age, attributes.lifetime, Size_d);\n\t\t\t\tSubpixelAA(attributes.position,
/*inout */attributes.alpha, attributes.size, /*inout */attributes.scaleX,

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

attributes.position, attributes.velocity);\n\t\t\t\tColorOverLife_733E3(attributes.age,
attributes.lifetime, /*inout */attributes.color, /*inout */attributes.alpha,
gradient_b);\n\t\t\t\t{\n\t\t\t\t float tmp_bd = attributes.position[1];\n\t\t\t\t
float tmp_be = tmp_bd - uniform_d;\n\t\t\t\t AttributeFromCurve_16A543C6(
float tmp_be = tmp_bd - uniform_a;\n\t\t\t\t AttributeFromCurve_16A543C6(
/*inout */attributes.alpha, Alpha_c, tmp_be);\n\t\t\t\t}\n\t\t\t\tAttributeFromCurve_7DF18695(
/*inout */attributes.size, attributes.age, attributes.lifetime, Size_d);\n\t\t\t\tSubpixelAA(attributes.position,
/*inout */attributes.alpha, attributes.size, /*inout */attributes.scaleX,

attributes.position, attributes.velocity);\n\t\t\t\tColorOverLife_733E3(attributes.age,
attributes.lifetime, /*inout */attributes.color, /*inout */attributes.alpha,
gradient_b);\n\t\t\t\t{\n\t\t\t\t float tmp_bd = attributes.position[1];\n\t\t\t\t
float tmp_be = tmp_bd - uniform_d;\n\t\t\t\t AttributeFromCurve_16A543C6(
float tmp_be = tmp_bd - uniform_a;\n\t\t\t\t AttributeFromCurve_16A543C6(
/*inout */attributes.alpha, Alpha_c, tmp_be);\n\t\t\t\t}\n\t\t\t\tAttributeFromCurve_7DF18695(
/*inout */attributes.size, attributes.age, attributes.lifetime, Size_d);\n\t\t\t\tSubpixelAA(attributes.position,
/*inout */attributes.alpha, attributes.size, /*inout */attributes.scaleX,

Source:Slot Random:Uniform channels:Z */\n{\n angleZ = lerp(A.x,B.x,RAND);\n}\nvoid
SetAttribute_2CF4000A(inout float3 targetPosition, float3 TargetPosition) /*attribute:targetPosition
Composition:Overwrite Source:Slot Random:Off channels:XYZ */\n{\n targetPosition
= TargetPosition;\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout
uint particleIndex, uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
= TargetPosition;\n}\n\n\r\n\r\n// Due to a bug in HLSL compiler, disable spurious
\"unitialized variable\" due to mid function return statement\r\n#pragma warning(push)\r\n#pragma
warning(disable : 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint
particleIndex, uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

VFX_PASSDEPTH_SELECTION (2)\n#define VFX_USE_LIFETIME_CURRENT 1\n#define VFX_USE_TEXINDEX_CURRENT
1\n#define VFX_USE_PARTICLEID_CURRENT 1\n#define VFX_USE_ALIVE_CURRENT 1\n#define
VFX_USE_AGE_CURRENT 1\n#define VFX_WORLD_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float uniform_b;\n float deltaTime_a;\n uint2 PADDING_0;\nCBUFFER_END\n\nstruct
float uniform_a;\n float deltaTime_a;\n uint2 PADDING_0;\nCBUFFER_END\n\nstruct
Attributes\n{\n float lifetime;\n float texIndex;\n uint particleId;\n
bool alive;\n float age;\n};\n\nstruct SourceAttributes\n{\n};\n\n\n\r\n\r\n#define
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer

= attributes.position;\r\n#endif\r\n#if HAS_STRIPS\r\n const StripData
stripData = GetStripDataFromParticleIndex(index, PARTICLE_PER_STRIP_COUNT);\r\n
InitStripAttributes(index, attributes, stripData);\r\n#endif\r\n\t\t\t\r\n\t\t\t{\n\t\t\t
uint tmp_ba = attributes.particleId ^ asuint(uniform_b);\n\t\t\t float tmp_bb
uint tmp_ba = attributes.particleId ^ asuint(uniform_a);\n\t\t\t float tmp_bb
= FixedRand(tmp_ba);\n\t\t\t float tmp_bd = tmp_bb * (float)20;\n\t\t\t
float tmp_be = (float)35 + tmp_bd;\n\t\t\t FlipbookPlay_0( /*inout */attributes.texIndex,
tmp_be, deltaTime_a);\n\t\t\t}\n\t\t\tAge( /*inout */attributes.age, deltaTime_a);\n\t\t\tReap(attributes.age,

HAS_STRIPS\r\n const StripData stripData = GetStripDataFromParticleIndex(index,
PARTICLE_PER_STRIP_COUNT);\r\n InitStripAttributes(index, attributes,
stripData);\r\n#endif\r\n\t\t\r\n\t\t{\n\t\t uint tmp_ba = attributes.particleId
^ asuint(uniform_b);\n\t\t float tmp_bb = FixedRand(tmp_ba);\n\t\t float
^ asuint(uniform_a);\n\t\t float tmp_bb = FixedRand(tmp_ba);\n\t\t float
tmp_bd = tmp_bb * (float)20;\n\t\t float tmp_be = (float)35 + tmp_bd;\n\t\t
FlipbookPlay_0( /*inout */attributes.texIndex, tmp_be, deltaTime_a);\n\t\t}\n\t\tAge(
/*inout */attributes.age, deltaTime_a);\n\t\tReap(attributes.age, attributes.lifetime,

name: '[System 4]Right Eye'
source: "Shader \"Hidden/VFX/GenieFX/System 4/Right Eye\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\"
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
SrcAlpha One \n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

VFX_USE_AGE_CURRENT 1\n\t\t#define VFX_COLORMAPPING_DEFAULT 1\n\t\t#define
IS_TRANSPARENT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_ADD 1\n\t\t#define USE_FLIPBOOK
1\n\t\t#define USE_FLIPBOOK_INTERPOLATION 1\n\t\t#define VFX_BYPASS_EXPOSURE
1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_WORLD_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
float3 Position_b;\n\t\t float Color_a;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float3 position;\n\t\t float lifetime;\n\t\t

float3 axisZ;\n\t\t float angleX;\n\t\t float angleY;\n\t\t float
pivotX;\n\t\t float pivotZ;\n\t\t float scaleZ;\n\t\t float age;\n\t\t};\n\t\t\n\t\tstruct
SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D mainTexture;\n\t\tSamplerState
samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

name: '[System 4]Left Eye'
source: "Shader \"Hidden/VFX/GenieFX/System 4/Left Eye\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\"
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
SrcAlpha One \n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

VFX_USE_AGE_CURRENT 1\n\t\t#define VFX_COLORMAPPING_DEFAULT 1\n\t\t#define
IS_TRANSPARENT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_ADD 1\n\t\t#define USE_FLIPBOOK
1\n\t\t#define USE_FLIPBOOK_INTERPOLATION 1\n\t\t#define VFX_BYPASS_EXPOSURE
1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_WORLD_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
float3 Position_b;\n\t\t float Color_a;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float3 position;\n\t\t float lifetime;\n\t\t

float3 axisZ;\n\t\t float angleX;\n\t\t float angleY;\n\t\t float
pivotX;\n\t\t float pivotZ;\n\t\t float scaleZ;\n\t\t float age;\n\t\t};\n\t\t\n\t\tstruct
SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D mainTexture;\n\t\tSamplerState
samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

index: 4
temporaryBuffers: []
values:
- nameId: uniform_b
- nameId: uniform_a
- nameId: uniform_c
- nameId: uniform_b
- nameId: uniform_d
- nameId: uniform_c
- nameId: uniform_e
- nameId: uniform_d
- nameId: uniform_f
- nameId: uniform_e
- nameId: uniform_f
index: 42
index: 42
- nameId: uniform_h
- nameId: uniform_i
- nameId: uniform_h
- nameId: uniform_i
index: 59
index: 59
index: 65
index: 65
- nameId: uniform_l
- nameId: uniform_m
- nameId: uniform_l
- nameId: uniform_n
- nameId: uniform_m
index: 69
- nameId: deltaTime_c
index: 126

index: 147
- nameId: deltaTime_a
index: 126
- nameId: uniform_d
- nameId: uniform_a
- nameId: uniform_e
- nameId: uniform_b
- nameId: uniform_f
- nameId: uniform_c
- nameId: uniform_g
- nameId: uniform_d
- nameId: uniform_h
- nameId: uniform_e
index: 56
params: []
processor: {fileID: 0}

index: 153
- nameId: FieldTransform_b
index: 82
- nameId: uniform_f
- nameId: uniform_a
- nameId: uniform_g
- nameId: uniform_b
- nameId: uniform_j
- nameId: uniform_c
index: 68
- nameId: DistanceField_b
index: 119

index: 116
- nameId: Alpha_c
index: 115
- nameId: uniform_d
- nameId: uniform_a
index: 95
- nameId: Size_d
index: 105

index: 17
temporaryBuffers: []
values:
- nameId: uniform_b
- nameId: uniform_a
index: 2
- nameId: deltaTime_a
index: 126

243
Assets/Samples/GenieMagicLamp/VFX/SandFX.vfx


1\n#define VFX_USE_AXISZ_CURRENT 1\n#define VFX_USE_SCALEX_CURRENT 1\n#define
VFX_USE_SCALEY_CURRENT 1\n#define VFX_USE_SCALEZ_CURRENT 1\n#define VFX_LOCAL_SPACE
1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float uniform_b;\n float uniform_c;\n float uniform_d;\n uint PADDING_0;\nCBUFFER_END\n\nstruct
float uniform_a;\n float uniform_b;\n float uniform_c;\n uint PADDING_0;\nCBUFFER_END\n\nstruct
attributeMap_a_TexelSize;\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT
attributeMap_a_TexelSize;\n\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT
&& !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer attributeBuffer;\r\nByteAddressBuffer
sourceAttributeBuffer;\r\n\r\nCBUFFER_START(initParams)\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
uint nbSpawned;\t\t\t\t\t// Numbers of particle spawned\r\n uint spawnIndex;\t\t\t\t//

float3 A, float3 B) /*attribute:color Composition:Overwrite Source:Slot Random:Uniform
channels:XYZ */\n{\n color = lerp(A,B,RAND);\n}\nvoid SetAttribute_3278B22F(inout
float size, float Size) /*attribute:size Composition:Overwrite Source:Slot
Random:Off channels:XYZ */\n{\n size = Size;\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
Random:Off channels:XYZ */\n{\n size = Size;\n}\n\n\r\n\r\n// Due to a bug
in HLSL compiler, disable spurious \"unitialized variable\" due to mid function
return statement\r\n#pragma warning(push)\r\n#pragma warning(disable : 4000)\r\n#if
HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

/*inout */attributes.position, tmp_bc);\n }\n {\n
SetAttribute_F01429A3( /*inout */attributes.lifetime, /*inout */attributes.seed,
(float)0.100000001, (float)1);\n }\n {\n uint tmp_bc
= attributes.particleId ^ asuint(uniform_b);\n float tmp_bd = FixedRand(tmp_bc);\n
= attributes.particleId ^ asuint(uniform_a);\n float tmp_bd = FixedRand(tmp_bc);\n
uint tmp_bi = attributes.particleId ^ asuint(uniform_c);\n float
uint tmp_bi = attributes.particleId ^ asuint(uniform_b);\n float
^ asuint(uniform_d);\n float tmp_bo = FixedRand(tmp_bn);\n
^ asuint(uniform_c);\n float tmp_bo = FixedRand(tmp_bn);\n
float tmp_bp = tmp_bo * (float)2;\n float tmp_bq = (float)-1 + tmp_bp;\n
float3 tmp_br = float3(tmp_bg, tmp_bm, tmp_bq);\n SetAttribute_C707D62A(
/*inout */attributes.position, tmp_br);\n }\n {\n

1\n#define VFX_USE_LIFETIME_CURRENT 1\n#define VFX_USE_VELOCITY_CURRENT 1\n#define
VFX_USE_MASS_CURRENT 1\n#define VFX_USE_AGE_CURRENT 1\n#define VFX_USE_ALIVE_CURRENT
1\n#define VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float4x4 InvFieldTransform_a;\n float4x4 FieldTransform_a;\n float4 uniform_d;\n
float uniform_e;\n float deltaTime_a;\n uint2 PADDING_0;\nCBUFFER_END\n\nstruct
float4x4 InvFieldTransform_a;\n float4x4 FieldTransform_a;\n float4 uniform_a;\n
float uniform_b;\n float deltaTime_a;\n uint2 PADDING_0;\nCBUFFER_END\n\nstruct
VectorField_a_TexelSize;\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT
VectorField_a_TexelSize;\n\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT
&& !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer attributeBuffer;\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint>
deadListOut;\r\n#endif\r\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\nRWStructuredBuffer<uint>
indirectBuffer;\r\n#endif\r\n\r\n#if HAS_STRIPS\r\nRWBuffer<uint> stripDataBuffer;\r\n#endif\r\n\r\n#if

HAS_STRIPS\r\n const StripData stripData = GetStripDataFromParticleIndex(index,
PARTICLE_PER_STRIP_COUNT);\r\n InitStripAttributes(index, attributes,
stripData);\r\n#endif\r\n\t\t\t\r\n\t\t\t{\n\t\t\t uint tmp_bd = attributes.particleId
^ asuint(uniform_e);\n\t\t\t float tmp_be = FixedRand(tmp_bd);\n\t\t\t
float tmp_bf = SampleCurve(uniform_d,tmp_be);\n\t\t\t float tmp_bh = tmp_bf
^ asuint(uniform_b);\n\t\t\t float tmp_be = FixedRand(tmp_bd);\n\t\t\t
float tmp_bf = SampleCurve(uniform_a,tmp_be);\n\t\t\t float tmp_bh = tmp_bf
^ asuint(uniform_e);\n\t\t\t float tmp_bf = FixedRand(tmp_be);\n\t\t\t
^ asuint(uniform_b);\n\t\t\t float tmp_bf = FixedRand(tmp_be);\n\t\t\t
float tmp_bh = tmp_bf * (float)13;\n\t\t\t float tmp_bi = (float)2 + tmp_bh;\n\t\t\t
float tmp_bj = tmp_bi * deltaTime_a;\n\t\t\t float tmp_bk = attributes.age
/ attributes.lifetime;\n\t\t\t float tmp_bl = tmp_bk * deltaTime_a;\n\t\t\t

= attributes.position;\r\n#endif\r\n#if HAS_STRIPS\r\n const StripData
stripData = GetStripDataFromParticleIndex(index, PARTICLE_PER_STRIP_COUNT);\r\n
InitStripAttributes(index, attributes, stripData);\r\n#endif\r\n\t\t\r\n\t\t{\n\t\t
uint tmp_bd = attributes.particleId ^ asuint(uniform_e);\n\t\t float tmp_be
= FixedRand(tmp_bd);\n\t\t float tmp_bf = SampleCurve(uniform_d,tmp_be);\n\t\t
uint tmp_bd = attributes.particleId ^ asuint(uniform_b);\n\t\t float tmp_be
= FixedRand(tmp_bd);\n\t\t float tmp_bf = SampleCurve(uniform_a,tmp_be);\n\t\t
asuint(uniform_e);\n\t\t float tmp_bf = FixedRand(tmp_be);\n\t\t float
asuint(uniform_b);\n\t\t float tmp_bf = FixedRand(tmp_be);\n\t\t float
tmp_bh = tmp_bf * (float)13;\n\t\t float tmp_bi = (float)2 + tmp_bh;\n\t\t
float tmp_bj = tmp_bi * deltaTime_a;\n\t\t float tmp_bk = attributes.age
/ attributes.lifetime;\n\t\t float tmp_bl = tmp_bk * deltaTime_a;\n\t\t

name: '[System 1]Output Particle Quad'
source: "Shader \"Hidden/VFX/SandFX/System 1/Output Particle Quad\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\"
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
SrcAlpha One \n\t\tBlend 1 SrcAlpha OneMinusSrcAlpha\n\t\tZTest LEqual\n\t\tZWrite
Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define NB_THREADS_PER_GROUP
64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL (0)\n\t\t#define

1\n\t\t#define VFX_USE_SCALEZ_CURRENT 1\n\t\t#define VFX_COLORMAPPING_DEFAULT
1\n\t\t#define IS_TRANSPARENT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_ADD 1\n\t\t#define
WRITE_MOTION_VECTOR_IN_FORWARD 1\n\t\t#define VFX_BYPASS_EXPOSURE 1\n\t\t#define
VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
float gradient_a;\n\t\t float uniform_c;\n\t\t float currentFrameIndex;\n\t\t
float gradient_a;\n\t\t float uniform_a;\n\t\t float currentFrameIndex;\n\t\t
uint PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct Attributes\n\t\t{\n\t\t
float3 position;\n\t\t uint particleId;\n\t\t float lifetime;\n\t\t
uint seed;\n\t\t float3 color;\n\t\t float size;\n\t\t float age;\n\t\t

float scaleX;\n\t\t float scaleY;\n\t\t float scaleZ;\n\t\t};\n\t\t\n\t\tstruct
SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D mainTexture;\n\t\tSamplerState
samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

SetAttribute_C7757136( /*inout */attributes.alpha, tmp_bv);\n\t\t\t\t}\n\t\t\t\tSubpixelAA(attributes.position,
/*inout */attributes.alpha, attributes.size, /*inout */attributes.scaleX,
/*inout */attributes.scaleY);\n\t\t\t\t{\n\t\t\t\t uint tmp_bd = attributes.particleId
^ asuint(uniform_c);\n\t\t\t\t float tmp_be = FixedRand(tmp_bd);\n\t\t\t\t
^ asuint(uniform_a);\n\t\t\t\t float tmp_be = FixedRand(tmp_bd);\n\t\t\t\t
float tmp_bg = tmp_be * (float)3;\n\t\t\t\t float tmp_bh = (float)2 + tmp_bg;\n\t\t\t\t
ScreenSpaceSize_18C(attributes.position, attributes.size, /*inout */attributes.scaleX,
/*inout */attributes.scaleY, /*inout */attributes.scaleZ, float2(1920, 1080),

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

SetAttribute_C7757136( /*inout */attributes.alpha, tmp_bv);\n\t\t\t\t}\n\t\t\t\tSubpixelAA(attributes.position,
/*inout */attributes.alpha, attributes.size, /*inout */attributes.scaleX,
/*inout */attributes.scaleY);\n\t\t\t\t{\n\t\t\t\t uint tmp_bd = attributes.particleId
^ asuint(uniform_c);\n\t\t\t\t float tmp_be = FixedRand(tmp_bd);\n\t\t\t\t
^ asuint(uniform_a);\n\t\t\t\t float tmp_be = FixedRand(tmp_bd);\n\t\t\t\t
float tmp_bg = tmp_be * (float)3;\n\t\t\t\t float tmp_bh = (float)2 + tmp_bg;\n\t\t\t\t
ScreenSpaceSize_18C(attributes.position, attributes.size, /*inout */attributes.scaleX,
/*inout */attributes.scaleY, /*inout */attributes.scaleZ, float2(1920, 1080),

VFX_USE_COLOR_CURRENT 1\n#define VFX_USE_SIZE_CURRENT 1\n#define VFX_USE_ALIVE_CURRENT
1\n#define VFX_USE_TEXINDEX_CURRENT 1\n#define VFX_USE_VELOCITY_CURRENT 1\n#define
VFX_USE_AGE_CURRENT 1\n#define VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float uniform_b;\n float uniform_c;\n float uniform_d;\n uint PADDING_0;\nCBUFFER_END\n\nstruct
float uniform_a;\n float uniform_b;\n float uniform_c;\n uint PADDING_0;\nCBUFFER_END\n\nstruct
attributeMap_a;\nSamplerState samplerattributeMap_a;\nfloat4 attributeMap_a_TexelSize;\n\n\r\n\r\n#define
attributeMap_a;\nSamplerState samplerattributeMap_a;\nfloat4 attributeMap_a_TexelSize;\n\n\n\r\n\r\n#define
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer
attributeBuffer;\r\nByteAddressBuffer sourceAttributeBuffer;\r\n\r\nCBUFFER_START(initParams)\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n uint nbSpawned;\t\t\t\t\t// Numbers of particle

/*attribute:color Composition:Overwrite Source:Slot Random:Off channels:XYZ
*/\n{\n color = Color;\n}\nvoid SetAttribute_3278B22F(inout float size,
float Size) /*attribute:size Composition:Overwrite Source:Slot Random:Off channels:XYZ
*/\n{\n size = Size;\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout
uint particleIndex, uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
*/\n{\n size = Size;\n}\n\n\r\n\r\n// Due to a bug in HLSL compiler, disable
spurious \"unitialized variable\" due to mid function return statement\r\n#pragma
warning(push)\r\n#pragma warning(disable : 4000)\r\n#if HAS_STRIPS\r\nbool
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

/*inout */attributes.position, tmp_bc);\n }\n {\n
SetAttribute_F01429A3( /*inout */attributes.lifetime, /*inout */attributes.seed,
(float)0.600000024, (float)1.5);\n }\n {\n uint tmp_bc
= attributes.particleId ^ asuint(uniform_b);\n float tmp_bd = FixedRand(tmp_bc);\n
= attributes.particleId ^ asuint(uniform_a);\n float tmp_bd = FixedRand(tmp_bc);\n
uint tmp_bi = attributes.particleId ^ asuint(uniform_c);\n float
uint tmp_bi = attributes.particleId ^ asuint(uniform_b);\n float
^ asuint(uniform_d);\n float tmp_bo = FixedRand(tmp_bn);\n
^ asuint(uniform_c);\n float tmp_bo = FixedRand(tmp_bn);\n
float tmp_bp = tmp_bo * (float)2;\n float tmp_bq = (float)-1 + tmp_bp;\n
float3 tmp_br = float3(tmp_bg, tmp_bm, tmp_bq);\n SetAttribute_C707D62A(
/*inout */attributes.position, tmp_br);\n }\n {\n

1\n#define VFX_USE_LIFETIME_CURRENT 1\n#define VFX_USE_ALIVE_CURRENT 1\n#define
VFX_USE_TEXINDEX_CURRENT 1\n#define VFX_USE_VELOCITY_CURRENT 1\n#define VFX_USE_AGE_CURRENT
1\n#define VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float deltaTime_b;\n float uniform_c;\n uint2 PADDING_0;\nCBUFFER_END\n\nstruct
float deltaTime_b;\n float uniform_a;\n uint2 PADDING_0;\nCBUFFER_END\n\nstruct
Attributes\n{\n float3 position;\n uint particleId;\n float lifetime;\n
bool alive;\n float texIndex;\n float3 velocity;\n float age;\n};\n\nstruct
SourceAttributes\n{\n};\n\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT

KillAABox_1(attributes.position, /*inout */attributes.alive, float3(-1.88016891,
5.14057446, -4.68257141), float3(88.6153793, 4.52800751, 86.7191925));\n\t\t\t}\n\t\t\t{\n\t\t\t
FlipbookPlay_0( /*inout */attributes.texIndex, (float)15, deltaTime_b);\n\t\t\t}\n\t\t\t{\n\t\t\t
uint tmp_ba = attributes.particleId ^ asuint(uniform_c);\n\t\t\t float tmp_bb
uint tmp_ba = attributes.particleId ^ asuint(uniform_a);\n\t\t\t float tmp_bb
= FixedRand(tmp_ba);\n\t\t\t float tmp_bd = tmp_bb * (float)13;\n\t\t\t
float tmp_be = (float)2 + tmp_bd;\n\t\t\t float tmp_bf = tmp_be * deltaTime_b;\n\t\t\t
float tmp_bg = attributes.age / attributes.lifetime;\n\t\t\t float tmp_bh

/*inout */attributes.alive, float3(-1.88016891, 5.14057446, -4.68257141), float3(88.6153793,
4.52800751, 86.7191925));\n\t\t}\n\t\t{\n\t\t FlipbookPlay_0( /*inout */attributes.texIndex,
(float)15, deltaTime_b);\n\t\t}\n\t\t{\n\t\t uint tmp_ba = attributes.particleId
^ asuint(uniform_c);\n\t\t float tmp_bb = FixedRand(tmp_ba);\n\t\t float
^ asuint(uniform_a);\n\t\t float tmp_bb = FixedRand(tmp_ba);\n\t\t float
tmp_bd = tmp_bb * (float)13;\n\t\t float tmp_be = (float)2 + tmp_bd;\n\t\t
float tmp_bf = tmp_be * deltaTime_b;\n\t\t float tmp_bg = attributes.age
/ attributes.lifetime;\n\t\t float tmp_bh = tmp_bg * deltaTime_b;\n\t\t

name: '[System 2]Output Particle Octagon'
source: "Shader \"Hidden/VFX/SandFX/System 2/Output Particle Octagon\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+400\" \"IgnoreProjector\"=\"True\"
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
SrcAlpha One , Zero One\n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

1\n\t\t#define VFX_USE_SCALEZ_CURRENT 1\n\t\t#define VFX_COLORMAPPING_DEFAULT
1\n\t\t#define IS_TRANSPARENT_PARTICLE 1\n\t\t#define USE_SOFT_PARTICLE 1\n\t\t#define
VFX_BLENDMODE_ADD 1\n\t\t#define USE_FLIPBOOK 1\n\t\t#define USE_FLIPBOOK_INTERPOLATION
1\n\t\t#define VFX_BYPASS_EXPOSURE 1\n\t\t#define VFX_PRIMITIVE_OCTAGON 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
1\n\t\t#define VFX_BYPASS_EXPOSURE 1\n\t\t#define VFX_PRIMITIVE_OCTAGON 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_LOCAL_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
float4 Scale_x_d;\n\t\t float4 Scale_y_d;\n\t\t float gradient_e;\n\t\t
uint3 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct Attributes\n\t\t{\n\t\t

angleZ;\n\t\t float pivotX;\n\t\t float pivotY;\n\t\t float pivotZ;\n\t\t
float scaleX;\n\t\t float scaleY;\n\t\t float scaleZ;\n\t\t};\n\t\t\n\t\tstruct
SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D mainTexture;\n\t\tSamplerState
samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

1\n#define VFX_USE_PIVOTZ_CURRENT 1\n#define VFX_USE_SCALEX_CURRENT 1\n#define
VFX_USE_SCALEY_CURRENT 1\n#define VFX_USE_SCALEZ_CURRENT 1\n#define VFX_LOCAL_SPACE
1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float gradient_a;\n float uniform_c;\n float currentFrameIndex;\n
float gradient_a;\n float uniform_a;\n float currentFrameIndex;\n
uint PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n float3 position;\n
uint particleId;\n float lifetime;\n uint seed;\n float3 color;\n
float size;\n float age;\n float alpha;\n bool alive;\n float3

SourceAttributes\n{\n};\n\nTexture2D mainTexture;\nSamplerState samplermainTexture;\nfloat4
mainTexture_TexelSize;\n\n\r\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n\r\nByteAddressBuffer
mainTexture_TexelSize;\n\n\n\r\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n\r\nByteAddressBuffer
attributeBuffer;\r\nRWByteAddressBuffer elementToVFXBuffer;\r\n#if VFX_USE_ALIVE_CURRENT\r\nStructuredBuffer<uint>
deadListOut;\r\n#endif\r\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\nStructuredBuffer<uint>
indirectBuffer;\r\n#endif\r\n\r\nCBUFFER_START(updateParams)\r\n\tuint nbMax;\r\n\tuint

SetAttribute_C7757136( /*inout */attributes.alpha, tmp_bx);\n\t\t\t}\n\t\t\tSubpixelAA(attributes.position,
/*inout */attributes.alpha, attributes.size, /*inout */attributes.scaleX,
/*inout */attributes.scaleY);\n\t\t\t{\n\t\t\t uint tmp_bf = attributes.particleId
^ asuint(uniform_c);\n\t\t\t float tmp_bg = FixedRand(tmp_bf);\n\t\t\t
^ asuint(uniform_a);\n\t\t\t float tmp_bg = FixedRand(tmp_bf);\n\t\t\t
float tmp_bi = tmp_bg * (float)3;\n\t\t\t float tmp_bj = (float)2 + tmp_bi;\n\t\t\t
ScreenSpaceSize_18C(attributes.position, attributes.size, /*inout */attributes.scaleX,
/*inout */attributes.scaleY, /*inout */attributes.scaleZ, float2(1920, 1080),

index: 2
temporaryBuffers: []
values:
- nameId: uniform_b
- nameId: uniform_a
- nameId: uniform_c
- nameId: uniform_b
- nameId: uniform_d
- nameId: uniform_c
index: 10
- nameId: attributeMap_a
index: 59

index: 64
- nameId: FieldTransform_a
index: 38
- nameId: uniform_d
- nameId: uniform_a
- nameId: uniform_e
- nameId: uniform_b
index: 5
- nameId: deltaTime_a
index: 17

values:
- nameId: gradient_a
index: 66
- nameId: uniform_c
- nameId: uniform_a
index: 5
- nameId: currentFrameIndex
index: 69

values:
- nameId: gradient_a
index: 66
- nameId: uniform_c
- nameId: uniform_a
index: 5
- nameId: currentFrameIndex
index: 69

index: 5
temporaryBuffers: []
values:
- nameId: uniform_a
index: 9
index: 9
index: 11
index: 11
- nameId: uniform_d
index: 10
- nameId: attributeMap_a
index: 59

values:
- nameId: deltaTime_b
index: 17
- nameId: uniform_c
- nameId: uniform_a
index: 5
params: []
processor: {fileID: 0}

m_UISuperCollapsed: 0
m_InputSlots:
- {fileID: 8926484042661615934}
- {fileID: 8926484042661615937}
- {fileID: 8926484042661615938}
- {fileID: 8926484042661615907}
- {fileID: 8926484042661615908}
m_OutputSlots: []

attributes: []
m_Direction: 0
m_LinkedSlots: []
--- !u!114 &8926484042661615937
--- !u!114 &8926484042661615938
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}

m_UIPosition: {x: 0, y: 0}
m_UICollapsed: 1
m_UISuperCollapsed: 0
m_MasterSlot: {fileID: 8926484042661615937}
m_MasterSlot: {fileID: 8926484042661615938}
m_MasterData:
m_Owner: {fileID: 8926484042661615906}
m_Value:

m_SerializableObject: 0.5
m_Space: 2147483647
m_Property:
name: softParticlesFadeDistance
name: softParticleFadeDistance
m_serializedType:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089

184
Assets/Samples/GrassWind/Environment_GrassWind.vfx


Random:Uniform channels:XYZ */\n{\n position += lerp(A,B,RAND);\n}\nvoid
SetAttribute_CA100327(inout float texIndex, inout uint seed, float A, float
B) /*attribute:texIndex Composition:Overwrite Source:Slot Random:Uniform channels:XYZ
*/\n{\n texIndex = lerp(A,B,RAND);\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
*/\n{\n texIndex = lerp(A,B,RAND);\n}\n\n\r\n\r\n// Due to a bug in HLSL
compiler, disable spurious \"unitialized variable\" due to mid function return
statement\r\n#pragma warning(push)\r\n#pragma warning(disable : 4000)\r\n#if
HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

source: "Shader \"Hidden/VFX/Environment_GrassWind/System 1/Output Particle Lit
Octagon\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull Off\r\n\t\t\r\n\t\tTags {
\"Queue\"=\"Transparent+400\" \"IgnoreProjector\"=\"True\" \"RenderType\"=\"Transparent\"
}\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
}\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
One OneMinusSrcAlpha , Zero OneMinusSrcAlpha\n\t\tZTest LEqual\n\t\tZWrite
Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define NB_THREADS_PER_GROUP
64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL (0)\n\t\t#define

HDRP_ENABLE_ENV_LIGHT 1\n\t\t#define HDRP_MULTIPLY_THICKNESS_WITH_ALPHA 1\n\t\t#define
HDRP_USE_BASE_COLOR_MAP 1\n\t\t#define HDRP_USE_BASE_COLOR_MAP_ALPHA 1\n\t\t#define
USE_NORMAL_MAP 1\n\t\t#define HDRP_USE_BASE_COLOR 1\n\t\t#define USE_NORMAL_BENDING
1\n\t\t#define FORCE_NORMAL_VARYING 1\n\t\t#define VFX_PRIMITIVE_OCTAGON 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
1\n\t\t#define FORCE_NORMAL_VARYING 1\n\t\t#define VFX_PRIMITIVE_OCTAGON 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_LOCAL_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float3 position;\n\t\t uint seed;\n\t\t float
texIndex;\n\t\t float3 color;\n\t\t float alpha;\n\t\t bool alive;\n\t\t

float scaleY;\n\t\t float scaleZ;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
baseColorMap;\n\t\tSamplerState samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\tTexture2D
normalMap;\n\t\tSamplerState samplernormalMap;\n\t\tfloat4 normalMap_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
baseColorMap;\n\t\tSamplerState samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\t\n\t\tTexture2D
normalMap;\n\t\tSamplerState samplernormalMap;\n\t\tfloat4 normalMap_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

instanceID : SV_InstanceID;\n\t\t\t#define VFX_GET_INSTANCE_ID(i) i.instanceID\n\t\t#endif\n\t\t\n\t\tENDHLSL\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
{ \"LightMode\"=\"SceneSelectionPass\" }\n\t\t\n\t\t\tZWrite On\n\t\t\tBlend
Off\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#define VFX_PASSDEPTH VFX_PASSDEPTH_SELECTION\n\t\t\t#pragma
target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t#pragma multi_compile _
WRITE_NORMAL_BUFFER\n\t\t\t\n\t\t\t#define NEEDS_NORMAL\tdefined(WRITE_NORMAL_BUFFER)
target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t\n\t\t\t#define NEEDS_NORMAL\tdefined(WRITE_NORMAL_BUFFER)
|| FORCE_NORMAL_VARYING || SHADERGRAPH_NEEDS_NORMAL_DEPTHONLY\n\t\t\t#define
NEEDS_TANGENT\tUSE_NORMAL_MAP || USE_NORMAL_BENDING || SHADERGRAPH_NEEDS_TANGENT_DEPTHONLY\n\t\t\t\n\t\t\tstruct
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\n\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t\t{\n\t\t\t\t
\n\t\t\t\t diffusionProfileHash = (uint)1080650646;\n\t\t\t\t}\n\t\t\t\t\n
// Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\n\t\t\t\tfloat
alpha;\n\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\n\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t //TODO: investigate why this is needed\n\t\t\t preLightData.coatPartLambdaV
= 0;\n\t\t\t preLightData.coatIblR = 0;\n\t\t\t preLightData.coatIblF
= 0;\n\t\t\t \n\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t}\n\t\t\t\n\t\t\tvoid
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t#define SHADERPASS
SHADERPASS_MOTION_VECTORS\n\t\t\t\t\t#else\n\t\t\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\tvoid VFXGetHDRPLitData(out SurfaceData
surfaceData, out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData
preLightData, VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData,
uint2 tileIndex)\n\t\t\t\t\t{\t\n\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t\tuint
diffusionProfileHash = (uint)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t
diffusionProfileHash = (uint)1080650646;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t
// Loads diffusion profile\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha;\n\t\t\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\t\t\n\t\t\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\t\t\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t //TODO: investigate why this is needed\n\t\t\t\t\t
preLightData.coatPartLambdaV = 0;\n\t\t\t\t\t preLightData.coatIblR = 0;\n\t\t\t\t\t
preLightData.coatIblF = 0;\n\t\t\t\t\t \n\t\t\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvoid
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t{\n\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t}\n\t\t\t\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t
\n\t\t\t#pragma fragment frag\n\t\t\tvoid frag(ps_input i\n\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t,
bool frontFace : SV_IsFrontFace\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t, out float4 outMotionVector : SV_Target0\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target1\n\t\t\t\t#endif\n\t\t\t#else\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t, out float4 outColor :
SV_Target0\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t\t)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\tconst VFXUVData uvData
= GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\tfloat3 bitangentWS = cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\tbitangentWS = cross(tangentWS,normalWS);\n\t\t\t\t\t\t\ttangentWS
*= faceMul;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3x3 tbn
= float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t \n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t
float alpha = VFXGetFragmentColor(i).a;\n\t\t\t #if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t
alpha *= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t
#endif\n\t\t\t #endif\n\t\t\t VFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t
#else\n\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t normalWS = mul(n,tbn);\n\t\t\t
#endif\n\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t
\n\t\t\t surface.normalWS = normalWS;\n\t\t\t \n\t\t\t
EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface), i.VFX_VARYING_POSCS.xy,
outNormalBuffer);\n\t\t\t #endif\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t\t\t{\n\t\t\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t, bool frontFace
: SV_IsFrontFace\n\t\t\t\t\t#endif\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t// We need the depth color as SV_Target0 for
alpha to coverage\n\t\t\t\t\t\t, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t,
out float4 outMotionVector : SV_Target1\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target2\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t//
When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t\t, out
float4 outMotionVector : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t//
We need the depth color as SV_Target0 for alpha to coverage\n\t\t\t\t\t\t,
out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#elif
defined(WRITE_NORMAL_BUFFER)\n\t\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outColor
: SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\t\t\tconst VFXUVData
uvData = GetUVData(i);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\t\t\tfloat3 bitangentWS =
cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\t\t\tbitangentWS =
cross(tangentWS,normalWS);\n\t\t\t\t\t\t\t\t\ttangentWS *= faceMul;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t\t\t
#else\n\t\t\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t\t\t normalWS = mul(n,tbn);\n\t\t\t\t\t
#endif\n\t\t\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t\t\t
surface.normalWS = normalWS;\n\t\t\t\t\t EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface),
i.VFX_VARYING_POSCS.xy, outNormalBuffer);\n\t\t\t\t\t #endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\toutMotionVector = encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t// We use depth prepass
for scene selection in the editor, this code allow to output the outline correctly\n\t\t\t\t\toutColor
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH ==
VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t//void\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH
undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t//
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\t//
We use depth prepass for scene selection in the editor, this code allow to
output the outline correctly\n\t\t\t\t\t\t\toutColor = float4(_ObjectId, _PassValue,
1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t//void\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined\n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"}\n\t\t\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma
target 4.5\n\t\t\t\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t#define LIGHTLOOP_TILE_PASS\n\t\t\t#define
_ENABLE_FOG_ON_TRANSPARENT\n\t\t\t#define _DISABLE_DECALS\n\t\t\t#define _BLENDMODE_ALPHA\n\t\t\t\n\n\t\t\t#pragma

VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t\t{\n\t\t\t\t
\n\t\t\t\t diffusionProfileHash = (uint)1080650646;\n\t\t\t\t}\n\t\t\t\t\n
// Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t{\n\t\t\t
\n\t\t\t diffusionProfileHash = (uint)1080650646;\n\t\t\t}\n\t\t\t\n //
Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\n\t\t\t\tfloat

508
Assets/Samples/GrassWind/Grass.vfx


float3 position;\n uint particleId;\n float3 direction;\n float3 targetPosition;\n
float3 color;\n uint seed;\n float3 velocity;\n float alpha;\n
float texIndex;\n};\n\nstruct SourceAttributes\n{\n};\n\nTexture2D attributeMap_a;\nSamplerState
samplerattributeMap_a;\nfloat4 attributeMap_a_TexelSize;\nTexture2D attributeMap_b;\nSamplerState
samplerattributeMap_b;\nfloat4 attributeMap_b_TexelSize;\n\n\r\n\r\n#define
samplerattributeMap_a;\nfloat4 attributeMap_a_TexelSize;\n\nTexture2D attributeMap_b;\nSamplerState
samplerattributeMap_b;\nfloat4 attributeMap_b_TexelSize;\n\n\n\r\n\r\n#define
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer
attributeBuffer;\r\nByteAddressBuffer sourceAttributeBuffer;\r\n\r\nCBUFFER_START(initParams)\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n uint nbSpawned;\t\t\t\t\t// Numbers of particle

float alpha, float Alpha) /*attribute:alpha Composition:Overwrite Source:Slot
Random:Off channels:XYZ */\n{\n alpha = Alpha;\n}\nvoid SetAttribute_CA100327(inout
float texIndex, inout uint seed, float A, float B) /*attribute:texIndex Composition:Overwrite
Source:Slot Random:Uniform channels:XYZ */\n{\n texIndex = lerp(A,B,RAND);\n}\n\n\r\n\r\n#if
HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
Source:Slot Random:Uniform channels:XYZ */\n{\n texIndex = lerp(A,B,RAND);\n}\n\n\r\n\r\n//
Due to a bug in HLSL compiler, disable spurious \"unitialized variable\" due
to mid function return statement\r\n#pragma warning(push)\r\n#pragma warning(disable
: 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

VFX_PASSDEPTH_SELECTION (2)\n#define VFX_USE_POSITION_CURRENT 1\n#define VFX_USE_PARTICLEID_CURRENT
1\n#define VFX_USE_VELOCITY_CURRENT 1\n#define VFX_USE_ALPHA_CURRENT 1\n#define
VFX_WORLD_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float4 uniform_d;\n float3 uniform_e;\n float uniform_b;\n float3
uniform_i;\n float uniform_c;\n float uniform_f;\n float uniform_g;\n
float uniform_h;\n uint PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n
float4 uniform_c;\n float3 uniform_d;\n float uniform_a;\n float3
uniform_h;\n float uniform_b;\n float uniform_e;\n float uniform_f;\n
float uniform_g;\n uint PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n
float3 position;\n uint particleId;\n float3 velocity;\n float alpha;\n};\n\nstruct
SourceAttributes\n{\n};\n\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT
&& !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer attributeBuffer;\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint>

HAS_STRIPS\r\n const StripData stripData = GetStripDataFromParticleIndex(index,
PARTICLE_PER_STRIP_COUNT);\r\n InitStripAttributes(index, attributes,
stripData);\r\n#endif\r\n\t\t\t\r\n\t\t\t{\n\t\t\t float3 tmp_bf = attributes.position
- uniform_e;\n\t\t\t float3 tmp_bg = tmp_bf * tmp_bf;\n\t\t\t float tmp_bh
- uniform_d;\n\t\t\t float3 tmp_bg = tmp_bf * tmp_bf;\n\t\t\t float tmp_bh
uint tmp_bp = attributes.particleId ^ asuint(uniform_f);\n\t\t\t float tmp_bq
uint tmp_bp = attributes.particleId ^ asuint(uniform_e);\n\t\t\t float tmp_bq
* tmp_bt;\n\t\t\t float tmp_bv = SampleCurve(uniform_d,tmp_bu);\n\t\t\t
float tmp_bw = tmp_bv * uniform_g;\n\t\t\t float tmp_bx = uniform_b + tmp_bw;\n\t\t\t
float tmp_by = tmp_bx - uniform_b;\n\t\t\t float tmp_bz = uniform_c * tmp_by;\n\t\t\t
float tmp_ca = uniform_b + tmp_bz;\n\t\t\t float tmp_cb = tmp_ca * uniform_h;\n\t\t\t
* tmp_bt;\n\t\t\t float tmp_bv = SampleCurve(uniform_c,tmp_bu);\n\t\t\t
float tmp_bw = tmp_bv * uniform_f;\n\t\t\t float tmp_bx = uniform_a + tmp_bw;\n\t\t\t
float tmp_by = tmp_bx - uniform_a;\n\t\t\t float tmp_bz = uniform_b * tmp_by;\n\t\t\t
float tmp_ca = uniform_a + tmp_bz;\n\t\t\t float tmp_cb = tmp_ca * uniform_g;\n\t\t\t
tmp_bi * uniform_i;\n\t\t\t float3 tmp_bk = attributes.position - uniform_e;\n\t\t\t
tmp_bi * uniform_h;\n\t\t\t float3 tmp_bk = attributes.position - uniform_d;\n\t\t\t
^ asuint(uniform_f);\n\t\t\t float tmp_bv = FixedRand(tmp_bu);\n\t\t\t
^ asuint(uniform_e);\n\t\t\t float tmp_bv = FixedRand(tmp_bu);\n\t\t\t
= SampleCurve(uniform_d,tmp_bz);\n\t\t\t float3 tmp_cb = float3(tmp_ca,
= SampleCurve(uniform_c,tmp_bz);\n\t\t\t float3 tmp_cb = float3(tmp_ca,
tmp_bf = saturate(attributes.alpha);\n\t\t\t float tmp_bg = tmp_bf * uniform_h;\n\t\t\t
tmp_bf = saturate(attributes.alpha);\n\t\t\t float tmp_bg = tmp_bf * uniform_g;\n\t\t\t
float3 tmp_bh = float3(tmp_bg, tmp_bg, tmp_bg);\n\t\t\t float3 tmp_bj =
float3(0, 0, 0) - attributes.velocity;\n\t\t\t float3 tmp_bk = tmp_bh *
tmp_bj;\n\t\t\t float3 tmp_bl = attributes.velocity + tmp_bk;\n\t\t\t

HAS_STRIPS\r\n const StripData stripData = GetStripDataFromParticleIndex(index,
PARTICLE_PER_STRIP_COUNT);\r\n InitStripAttributes(index, attributes,
stripData);\r\n#endif\r\n\t\t\r\n\t\t{\n\t\t float3 tmp_bf = attributes.position
- uniform_e;\n\t\t float3 tmp_bg = tmp_bf * tmp_bf;\n\t\t float tmp_bh
- uniform_d;\n\t\t float3 tmp_bg = tmp_bf * tmp_bf;\n\t\t float tmp_bh
= attributes.particleId ^ asuint(uniform_f);\n\t\t float tmp_bq = FixedRand(tmp_bp);\n\t\t
= attributes.particleId ^ asuint(uniform_e);\n\t\t float tmp_bq = FixedRand(tmp_bp);\n\t\t
SampleCurve(uniform_d,tmp_bu);\n\t\t float tmp_bw = tmp_bv * uniform_g;\n\t\t
float tmp_bx = uniform_b + tmp_bw;\n\t\t float tmp_by = tmp_bx - uniform_b;\n\t\t
float tmp_bz = uniform_c * tmp_by;\n\t\t float tmp_ca = uniform_b + tmp_bz;\n\t\t
float tmp_cb = tmp_ca * uniform_h;\n\t\t float tmp_cc = tmp_cb + attributes.alpha;\n\t\t
SampleCurve(uniform_c,tmp_bu);\n\t\t float tmp_bw = tmp_bv * uniform_f;\n\t\t
float tmp_bx = uniform_a + tmp_bw;\n\t\t float tmp_by = tmp_bx - uniform_a;\n\t\t
float tmp_bz = uniform_b * tmp_by;\n\t\t float tmp_ca = uniform_a + tmp_bz;\n\t\t
float tmp_cb = tmp_ca * uniform_g;\n\t\t float tmp_cc = tmp_cb + attributes.alpha;\n\t\t
float3 tmp_bj = tmp_bi * uniform_i;\n\t\t float3 tmp_bk = attributes.position
- uniform_e;\n\t\t float3 tmp_bl = tmp_bk * tmp_bk;\n\t\t float tmp_bm
float3 tmp_bj = tmp_bi * uniform_h;\n\t\t float3 tmp_bk = attributes.position
- uniform_d;\n\t\t float3 tmp_bl = tmp_bk * tmp_bk;\n\t\t float tmp_bm
= attributes.particleId ^ asuint(uniform_f);\n\t\t float tmp_bv = FixedRand(tmp_bu);\n\t\t
= attributes.particleId ^ asuint(uniform_e);\n\t\t float tmp_bv = FixedRand(tmp_bu);\n\t\t
SampleCurve(uniform_d,tmp_bz);\n\t\t float3 tmp_cb = float3(tmp_ca, tmp_ca,
SampleCurve(uniform_c,tmp_bz);\n\t\t float3 tmp_cb = float3(tmp_ca, tmp_ca,
= saturate(attributes.alpha);\n\t\t float tmp_bg = tmp_bf * uniform_h;\n\t\t
= saturate(attributes.alpha);\n\t\t float tmp_bg = tmp_bf * uniform_g;\n\t\t
float3 tmp_bh = float3(tmp_bg, tmp_bg, tmp_bg);\n\t\t float3 tmp_bj = float3(0,
0, 0) - attributes.velocity;\n\t\t float3 tmp_bk = tmp_bh * tmp_bj;\n\t\t
float3 tmp_bl = attributes.velocity + tmp_bk;\n\t\t SetAttribute_E629755(

name: '[System 1]Output Particle Lit Quad'
source: "Shader \"Hidden/VFX/Grass/System 1/Output Particle Lit Quad\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Geometry+450\" \"IgnoreProjector\"=\"False\"
\"RenderType\"=\"Opaque\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
\"RenderType\"=\"Opaque\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
LEqual\n\t\tZWrite On\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

HDRP_USE_BASE_COLOR_MAP_COLOR 1\n\t\t#define HDRP_USE_BASE_COLOR_MAP_ALPHA
1\n\t\t#define USE_NORMAL_MAP 1\n\t\t#define HDRP_USE_BASE_COLOR 1\n\t\t#define
IS_OPAQUE_NOT_SIMPLE_LIT_PARTICLE 1\n\t\t#define USE_NORMAL_BENDING 1\n\t\t#define
FORCE_NORMAL_VARYING 1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
FORCE_NORMAL_VARYING 1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
float4x4 uniform_l;\n\t\t float4 uniform_c;\n\t\t float4 Size_e;\n\t\t
float4 uniform_n;\n\t\t float3 uniform_b;\n\t\t float uniform_d;\n\t\t
float4x4 uniform_l;\n\t\t float4 uniform_b;\n\t\t float4 Size_e;\n\t\t
float4 uniform_m;\n\t\t float3 uniform_a;\n\t\t float uniform_c;\n\t\t
float2 uniform_i;\n\t\t float2 uniform_j;\n\t\t float2 uniform_o;\n\t\t
float2 uniform_i;\n\t\t float2 uniform_j;\n\t\t float2 uniform_n;\n\t\t
float2 flipBookSize;\n\t\t float2 invFlipBookSize;\n\t\t uint2 PADDING_1;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float3 position;\n\t\t uint particleId;\n\t\t
float3 targetPosition;\n\t\t float3 color;\n\t\t float3 velocity;\n\t\t

pivotY;\n\t\t float pivotZ;\n\t\t float size;\n\t\t float scaleX;\n\t\t
float scaleY;\n\t\t float scaleZ;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
texture_b;\n\t\tSamplerState samplertexture_b;\n\t\tfloat4 texture_b_TexelSize;\n\t\tTexture2D
attributeMap_c;\n\t\tSamplerState samplerattributeMap_c;\n\t\tfloat4 attributeMap_c_TexelSize;\n\t\tTexture2D
baseColorMap;\n\t\tSamplerState samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\tTexture2D
normalMap;\n\t\tSamplerState samplernormalMap;\n\t\tfloat4 normalMap_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
texture_d;\n\t\tSamplerState samplertexture_d;\n\t\tfloat4 texture_d_TexelSize;\n\t\t\n\t\tTexture2D
attributeMap_c;\n\t\tSamplerState samplerattributeMap_c;\n\t\tfloat4 attributeMap_c_TexelSize;\n\t\t\n\t\tTexture2D
baseColorMap;\n\t\tSamplerState samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\t\n\t\tTexture2D
normalMap;\n\t\tSamplerState samplernormalMap;\n\t\tfloat4 normalMap_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

instanceID : SV_InstanceID;\n\t\t\t#define VFX_GET_INSTANCE_ID(i) i.instanceID\n\t\t#endif\n\t\t\n\t\tENDHLSL\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
{ \"LightMode\"=\"SceneSelectionPass\" }\n\t\t\n\t\t\tZWrite On\n\t\t\tBlend
Off\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#define VFX_PASSDEPTH VFX_PASSDEPTH_SELECTION\n\t\t\t#pragma
target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t#pragma multi_compile _
WRITE_NORMAL_BUFFER\n\t\t\t\n\t\t\t#define NEEDS_NORMAL\tdefined(WRITE_NORMAL_BUFFER)
target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t\n\t\t\t#define NEEDS_NORMAL\tdefined(WRITE_NORMAL_BUFFER)
|| FORCE_NORMAL_VARYING || SHADERGRAPH_NEEDS_NORMAL_DEPTHONLY\n\t\t\t#define
NEEDS_TANGENT\tUSE_NORMAL_MAP || USE_NORMAL_BENDING || SHADERGRAPH_NEEDS_TANGENT_DEPTHONLY\n\t\t\t\n\t\t\tstruct
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4

float tmp_cb = pow(tmp_bz, (float)0.5);\n\t\t\t\t float tmp_cd = tmp_cb
* (float)-0.400000006;\n\t\t\t\t float3 tmp_ce = float3((float)0, tmp_cd,
(float)0);\n\t\t\t\t float3 tmp_cf = tmp_bs + tmp_ce;\n\t\t\t\t float3
tmp_cg = attributes.position - uniform_b;\n\t\t\t\t float3 tmp_ch = tmp_cg
tmp_cg = attributes.position - uniform_a;\n\t\t\t\t float3 tmp_ch = tmp_cg
^ asuint(uniform_d);\n\t\t\t\t float tmp_cq = FixedRand(tmp_cp);\n\t\t\t\t
^ asuint(uniform_c);\n\t\t\t\t float tmp_cq = FixedRand(tmp_cp);\n\t\t\t\t
= SampleCurve(uniform_c,tmp_cu);\n\t\t\t\t float3 tmp_cw = float3(tmp_cv,
= SampleCurve(uniform_b,tmp_cu);\n\t\t\t\t float3 tmp_cw = float3(tmp_cv,
tmp_cv, tmp_cv);\n\t\t\t\t float3 tmp_cx = tmp_cg * tmp_cw;\n\t\t\t\t
float3 tmp_cz = tmp_cx * float3(1.00999999, 1.00999999, 1.00999999);\n\t\t\t\t
float3 tmp_da = tmp_cf + tmp_cz;\n\t\t\t\t float3 tmp_db = tmp_da + attributes.targetPosition;\n\t\t\t\t

tmp_bu = tmp_bt / uniform_f;\n\t\t\t\t float tmp_bv = tmp_bu[0];\n\t\t\t\t
float tmp_bw = tmp_bu[2];\n\t\t\t\t float2 tmp_bx = float2(tmp_bv, tmp_bw);\n\t\t\t\t
float2 tmp_bz = tmp_bx + float2(0.5, 0.5);\n\t\t\t\t float4 tmp_cb = SampleTexture(VFX_SAMPLER(texture_b),tmp_bz,(float)0);\n\t\t\t\t
float2 tmp_bz = tmp_bx + float2(0.5, 0.5);\n\t\t\t\t float4 tmp_cb = SampleTexture(VFX_SAMPLER(texture_d),tmp_bz,(float)0);\n\t\t\t\t
float tmp_cc = tmp_cb[0];\n\t\t\t\t float tmp_cd = tmp_cc * uniform_g;\n\t\t\t\t
float tmp_ce = tmp_cd + uniform_h;\n\t\t\t\t float tmp_cf = max(tmp_bs,
tmp_ce);\n\t\t\t\t float tmp_cg = attributes.targetPosition[2];\n\t\t\t\t

float tmp_bt = tmp_br[1];\n\t\t\t\t float tmp_bu = tmp_bs + tmp_bt;\n\t\t\t\t
float tmp_bv = tmp_br[0];\n\t\t\t\t float tmp_bw = tmp_bu + tmp_bv;\n\t\t\t\t
float tmp_by = pow(tmp_bw, (float)0.5);\n\t\t\t\t uint tmp_ca = attributes.particleId
^ asuint(uniform_d);\n\t\t\t\t float tmp_cb = FixedRand(tmp_ca);\n\t\t\t\t
^ asuint(uniform_c);\n\t\t\t\t float tmp_cb = FixedRand(tmp_ca);\n\t\t\t\t
= SampleCurve(uniform_n,tmp_cf);\n\t\t\t\t float2 tmp_ch = float2(tmp_cg,
= SampleCurve(uniform_m,tmp_cf);\n\t\t\t\t float2 tmp_ch = float2(tmp_cg,
float2 tmp_cj = tmp_ch * tmp_ci;\n\t\t\t\t float2 tmp_ck = tmp_cj * uniform_o;\n\t\t\t\t
float2 tmp_cj = tmp_ch * tmp_ci;\n\t\t\t\t float2 tmp_ck = tmp_cj * uniform_n;\n\t\t\t\t
SetAttribute_D5151647( /*inout */attributes.scaleX, /*inout */attributes.scaleY,
tmp_ck);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t SetAttribute_65DEC944( /*inout
*/attributes.pivotZ, (float)0.180000007);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\n\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t\t{\n\t\t\t\t
\n\t\t\t\t diffusionProfileHash = (uint)1078544746;\n\t\t\t\t}\n\t\t\t\t\n
// Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\n\t\t\t\tfloat
alpha;\n\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\n\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t //TODO: investigate why this is needed\n\t\t\t preLightData.coatPartLambdaV
= 0;\n\t\t\t preLightData.coatIblR = 0;\n\t\t\t preLightData.coatIblF
= 0;\n\t\t\t \n\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t}\n\t\t\t\n\t\t\tvoid
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t#define SHADERPASS
SHADERPASS_MOTION_VECTORS\n\t\t\t\t\t#else\n\t\t\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\tvoid VFXGetHDRPLitData(out SurfaceData
surfaceData, out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData
preLightData, VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData,
uint2 tileIndex)\n\t\t\t\t\t{\t\n\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t\tuint
diffusionProfileHash = (uint)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t
diffusionProfileHash = (uint)1078544746;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t
// Loads diffusion profile\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha;\n\t\t\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\t\t\n\t\t\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\t\t\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t //TODO: investigate why this is needed\n\t\t\t\t\t
preLightData.coatPartLambdaV = 0;\n\t\t\t\t\t preLightData.coatIblR = 0;\n\t\t\t\t\t
preLightData.coatIblF = 0;\n\t\t\t\t\t \n\t\t\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvoid
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t{\n\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t}\n\t\t\t\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t
\n\t\t\t#pragma fragment frag\n\t\t\tvoid frag(ps_input i\n\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t,
bool frontFace : SV_IsFrontFace\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t, out float4 outMotionVector : SV_Target0\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target1\n\t\t\t\t#endif\n\t\t\t#else\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t, out float4 outColor :
SV_Target0\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t\t)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\tconst VFXUVData uvData
= GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\tfloat3 bitangentWS = cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\tbitangentWS = cross(tangentWS,normalWS);\n\t\t\t\t\t\t\ttangentWS
*= faceMul;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3x3 tbn
= float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t \n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t
float alpha = VFXGetFragmentColor(i).a;\n\t\t\t #if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t
alpha *= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t
#endif\n\t\t\t #endif\n\t\t\t VFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t
#else\n\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t normalWS = mul(n,tbn);\n\t\t\t
#endif\n\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t
\n\t\t\t surface.normalWS = normalWS;\n\t\t\t \n\t\t\t
EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface), i.VFX_VARYING_POSCS.xy,
outNormalBuffer);\n\t\t\t #endif\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t\t\t{\n\t\t\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t, bool frontFace
: SV_IsFrontFace\n\t\t\t\t\t#endif\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t// We need the depth color as SV_Target0 for
alpha to coverage\n\t\t\t\t\t\t, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t,
out float4 outMotionVector : SV_Target1\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target2\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t//
When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t\t, out
float4 outMotionVector : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t//
We need the depth color as SV_Target0 for alpha to coverage\n\t\t\t\t\t\t,
out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#elif
defined(WRITE_NORMAL_BUFFER)\n\t\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outColor
: SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\t\t\tconst VFXUVData
uvData = GetUVData(i);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\t\t\tfloat3 bitangentWS =
cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\t\t\tbitangentWS =
cross(tangentWS,normalWS);\n\t\t\t\t\t\t\t\t\ttangentWS *= faceMul;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t\t\t
#else\n\t\t\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t\t\t normalWS = mul(n,tbn);\n\t\t\t\t\t
#endif\n\t\t\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t\t\t
surface.normalWS = normalWS;\n\t\t\t\t\t EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface),
i.VFX_VARYING_POSCS.xy, outNormalBuffer);\n\t\t\t\t\t #endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\toutMotionVector = encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t// We use depth prepass
for scene selection in the editor, this code allow to output the outline correctly\n\t\t\t\t\toutColor
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH ==
VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t//void\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH
undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\t//
We use depth prepass for scene selection in the editor, this code allow to
output the outline correctly\n\t\t\t\t\t\t\toutColor = float4(_ObjectId, _PassValue,
1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t//void\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined\n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t#pragma target 4.5\n\t\t\t#define
UNITY_MATERIAL_LIT\n\t\t\t#pragma multi_compile _ WRITE_NORMAL_BUFFER\n\t\t\t\n\t\t\t#define
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t#pragma multi_compile _ WRITE_NORMAL_BUFFER\n\t\t\t#pragma
multi_compile _ WRITE_MSAA_DEPTH\n\t\t\t#pragma target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t\n\t\t\t#define
NEEDS_NORMAL\tdefined(WRITE_NORMAL_BUFFER) || FORCE_NORMAL_VARYING || SHADERGRAPH_NEEDS_NORMAL_DEPTHONLY\n\t\t\t#define
NEEDS_TANGENT\tUSE_NORMAL_MAP || USE_NORMAL_BENDING || SHADERGRAPH_NEEDS_TANGENT_DEPTHONLY\n\t\t\t\n\t\t\tstruct
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4

float tmp_cb = pow(tmp_bz, (float)0.5);\n\t\t\t\t float tmp_cd = tmp_cb
* (float)-0.400000006;\n\t\t\t\t float3 tmp_ce = float3((float)0, tmp_cd,
(float)0);\n\t\t\t\t float3 tmp_cf = tmp_bs + tmp_ce;\n\t\t\t\t float3
tmp_cg = attributes.position - uniform_b;\n\t\t\t\t float3 tmp_ch = tmp_cg
tmp_cg = attributes.position - uniform_a;\n\t\t\t\t float3 tmp_ch = tmp_cg
^ asuint(uniform_d);\n\t\t\t\t float tmp_cq = FixedRand(tmp_cp);\n\t\t\t\t
^ asuint(uniform_c);\n\t\t\t\t float tmp_cq = FixedRand(tmp_cp);\n\t\t\t\t
= SampleCurve(uniform_c,tmp_cu);\n\t\t\t\t float3 tmp_cw = float3(tmp_cv,
= SampleCurve(uniform_b,tmp_cu);\n\t\t\t\t float3 tmp_cw = float3(tmp_cv,
tmp_cv, tmp_cv);\n\t\t\t\t float3 tmp_cx = tmp_cg * tmp_cw;\n\t\t\t\t
float3 tmp_cz = tmp_cx * float3(1.00999999, 1.00999999, 1.00999999);\n\t\t\t\t
float3 tmp_da = tmp_cf + tmp_cz;\n\t\t\t\t float3 tmp_db = tmp_da + attributes.targetPosition;\n\t\t\t\t

tmp_bu = tmp_bt / uniform_f;\n\t\t\t\t float tmp_bv = tmp_bu[0];\n\t\t\t\t
float tmp_bw = tmp_bu[2];\n\t\t\t\t float2 tmp_bx = float2(tmp_bv, tmp_bw);\n\t\t\t\t
float2 tmp_bz = tmp_bx + float2(0.5, 0.5);\n\t\t\t\t float4 tmp_cb = SampleTexture(VFX_SAMPLER(texture_b),tmp_bz,(float)0);\n\t\t\t\t
float2 tmp_bz = tmp_bx + float2(0.5, 0.5);\n\t\t\t\t float4 tmp_cb = SampleTexture(VFX_SAMPLER(texture_d),tmp_bz,(float)0);\n\t\t\t\t
float tmp_cc = tmp_cb[0];\n\t\t\t\t float tmp_cd = tmp_cc * uniform_g;\n\t\t\t\t
float tmp_ce = tmp_cd + uniform_h;\n\t\t\t\t float tmp_cf = max(tmp_bs,
tmp_ce);\n\t\t\t\t float tmp_cg = attributes.targetPosition[2];\n\t\t\t\t

float tmp_bt = tmp_br[1];\n\t\t\t\t float tmp_bu = tmp_bs + tmp_bt;\n\t\t\t\t
float tmp_bv = tmp_br[0];\n\t\t\t\t float tmp_bw = tmp_bu + tmp_bv;\n\t\t\t\t
float tmp_by = pow(tmp_bw, (float)0.5);\n\t\t\t\t uint tmp_ca = attributes.particleId
^ asuint(uniform_d);\n\t\t\t\t float tmp_cb = FixedRand(tmp_ca);\n\t\t\t\t
^ asuint(uniform_c);\n\t\t\t\t float tmp_cb = FixedRand(tmp_ca);\n\t\t\t\t
= SampleCurve(uniform_n,tmp_cf);\n\t\t\t\t float2 tmp_ch = float2(tmp_cg,
= SampleCurve(uniform_m,tmp_cf);\n\t\t\t\t float2 tmp_ch = float2(tmp_cg,
float2 tmp_cj = tmp_ch * tmp_ci;\n\t\t\t\t float2 tmp_ck = tmp_cj * uniform_o;\n\t\t\t\t
float2 tmp_cj = tmp_ch * tmp_ci;\n\t\t\t\t float2 tmp_ck = tmp_cj * uniform_n;\n\t\t\t\t
SetAttribute_D5151647( /*inout */attributes.scaleX, /*inout */attributes.scaleY,
tmp_ck);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t SetAttribute_65DEC944( /*inout
*/attributes.pivotZ, (float)0.180000007);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\n\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t\t{\n\t\t\t\t
\n\t\t\t\t diffusionProfileHash = (uint)1078544746;\n\t\t\t\t}\n\t\t\t\t\n
// Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\n\t\t\t\tfloat
alpha;\n\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\n\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t //TODO: investigate why this is needed\n\t\t\t preLightData.coatPartLambdaV
= 0;\n\t\t\t preLightData.coatIblR = 0;\n\t\t\t preLightData.coatIblF
= 0;\n\t\t\t \n\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t}\n\t\t\t\n\t\t\tvoid
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t#define SHADERPASS
SHADERPASS_MOTION_VECTORS\n\t\t\t\t\t#else\n\t\t\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\tvoid VFXGetHDRPLitData(out SurfaceData
surfaceData, out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData
preLightData, VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData,
uint2 tileIndex)\n\t\t\t\t\t{\t\n\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t\tuint
diffusionProfileHash = (uint)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t
diffusionProfileHash = (uint)1078544746;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t
// Loads diffusion profile\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha;\n\t\t\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\t\t\n\t\t\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\t\t\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t //TODO: investigate why this is needed\n\t\t\t\t\t
preLightData.coatPartLambdaV = 0;\n\t\t\t\t\t preLightData.coatIblR = 0;\n\t\t\t\t\t
preLightData.coatIblF = 0;\n\t\t\t\t\t \n\t\t\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvoid
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t{\n\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t}\n\t\t\t\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t
\n\t\t\t#pragma fragment frag\n\t\t\tvoid frag(ps_input i\n\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t,
bool frontFace : SV_IsFrontFace\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t, out float4 outMotionVector : SV_Target0\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target1\n\t\t\t\t#endif\n\t\t\t#else\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t, out float4 outColor :
SV_Target0\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t\t)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\tconst VFXUVData uvData
= GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\tfloat3 bitangentWS = cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\tbitangentWS = cross(tangentWS,normalWS);\n\t\t\t\t\t\t\ttangentWS
*= faceMul;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3x3 tbn
= float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t \n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t
float alpha = VFXGetFragmentColor(i).a;\n\t\t\t #if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t
alpha *= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t
#endif\n\t\t\t #endif\n\t\t\t VFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t
#else\n\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t normalWS = mul(n,tbn);\n\t\t\t
#endif\n\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t
\n\t\t\t surface.normalWS = normalWS;\n\t\t\t \n\t\t\t
EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface), i.VFX_VARYING_POSCS.xy,
outNormalBuffer);\n\t\t\t #endif\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t\t\t{\n\t\t\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t, bool frontFace
: SV_IsFrontFace\n\t\t\t\t\t#endif\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t// We need the depth color as SV_Target0 for
alpha to coverage\n\t\t\t\t\t\t, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t,
out float4 outMotionVector : SV_Target1\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target2\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t//
When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t\t, out
float4 outMotionVector : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t//
We need the depth color as SV_Target0 for alpha to coverage\n\t\t\t\t\t\t,
out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#elif
defined(WRITE_NORMAL_BUFFER)\n\t\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outColor
: SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\t\t\tconst VFXUVData
uvData = GetUVData(i);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\t\t\tfloat3 bitangentWS =
cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\t\t\tbitangentWS =
cross(tangentWS,normalWS);\n\t\t\t\t\t\t\t\t\ttangentWS *= faceMul;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t\t\t
#else\n\t\t\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t\t\t normalWS = mul(n,tbn);\n\t\t\t\t\t
#endif\n\t\t\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t\t\t
surface.normalWS = normalWS;\n\t\t\t\t\t EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface),
i.VFX_VARYING_POSCS.xy, outNormalBuffer);\n\t\t\t\t\t #endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\toutMotionVector = encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t// We use depth prepass
for scene selection in the editor, this code allow to output the outline correctly\n\t\t\t\t\toutColor
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH ==
VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t//void\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH
undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\t//
We use depth prepass for scene selection in the editor, this code allow to
output the outline correctly\n\t\t\t\t\t\t\toutColor = float4(_ObjectId, _PassValue,
1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t//void\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined\n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
{ \"LightMode\"=\"GBuffer\" }\n\t\t\n\t\t Stencil\n\t\t {\n\t\t WriteMask
6\n\t\t Ref 2\n\t\t Comp Always\n\t\t Pass Replace\n\t\t }\n\n\t\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma
target 4.5\n\t\t\t\n\t\t\t#pragma multi_compile _ LIGHT_LAYERS\n\t\t\t#pragma

float tmp_cb = pow(tmp_bz, (float)0.5);\n\t\t\t\t float tmp_cd = tmp_cb
* (float)-0.400000006;\n\t\t\t\t float3 tmp_ce = float3((float)0, tmp_cd,
(float)0);\n\t\t\t\t float3 tmp_cf = tmp_bs + tmp_ce;\n\t\t\t\t float3
tmp_cg = attributes.position - uniform_b;\n\t\t\t\t float3 tmp_ch = tmp_cg
tmp_cg = attributes.position - uniform_a;\n\t\t\t\t float3 tmp_ch = tmp_cg
^ asuint(uniform_d);\n\t\t\t\t float tmp_cq = FixedRand(tmp_cp);\n\t\t\t\t
^ asuint(uniform_c);\n\t\t\t\t float tmp_cq = FixedRand(tmp_cp);\n\t\t\t\t
= SampleCurve(uniform_c,tmp_cu);\n\t\t\t\t float3 tmp_cw = float3(tmp_cv,
= SampleCurve(uniform_b,tmp_cu);\n\t\t\t\t float3 tmp_cw = float3(tmp_cv,
tmp_cv, tmp_cv);\n\t\t\t\t float3 tmp_cx = tmp_cg * tmp_cw;\n\t\t\t\t
float3 tmp_cz = tmp_cx * float3(1.00999999, 1.00999999, 1.00999999);\n\t\t\t\t
float3 tmp_da = tmp_cf + tmp_cz;\n\t\t\t\t float3 tmp_db = tmp_da + attributes.targetPosition;\n\t\t\t\t

tmp_bu = tmp_bt / uniform_f;\n\t\t\t\t float tmp_bv = tmp_bu[0];\n\t\t\t\t
float tmp_bw = tmp_bu[2];\n\t\t\t\t float2 tmp_bx = float2(tmp_bv, tmp_bw);\n\t\t\t\t
float2 tmp_bz = tmp_bx + float2(0.5, 0.5);\n\t\t\t\t float4 tmp_cb = SampleTexture(VFX_SAMPLER(texture_b),tmp_bz,(float)0);\n\t\t\t\t
float2 tmp_bz = tmp_bx + float2(0.5, 0.5);\n\t\t\t\t float4 tmp_cb = SampleTexture(VFX_SAMPLER(texture_d),tmp_bz,(float)0);\n\t\t\t\t
float tmp_cc = tmp_cb[0];\n\t\t\t\t float tmp_cd = tmp_cc * uniform_g;\n\t\t\t\t
float tmp_ce = tmp_cd + uniform_h;\n\t\t\t\t float tmp_cf = max(tmp_bs,
tmp_ce);\n\t\t\t\t float tmp_cg = attributes.targetPosition[2];\n\t\t\t\t

float tmp_bt = tmp_br[1];\n\t\t\t\t float tmp_bu = tmp_bs + tmp_bt;\n\t\t\t\t
float tmp_bv = tmp_br[0];\n\t\t\t\t float tmp_bw = tmp_bu + tmp_bv;\n\t\t\t\t
float tmp_by = pow(tmp_bw, (float)0.5);\n\t\t\t\t uint tmp_ca = attributes.particleId
^ asuint(uniform_d);\n\t\t\t\t float tmp_cb = FixedRand(tmp_ca);\n\t\t\t\t
^ asuint(uniform_c);\n\t\t\t\t float tmp_cb = FixedRand(tmp_ca);\n\t\t\t\t
= SampleCurve(uniform_n,tmp_cf);\n\t\t\t\t float2 tmp_ch = float2(tmp_cg,
= SampleCurve(uniform_m,tmp_cf);\n\t\t\t\t float2 tmp_ch = float2(tmp_cg,
float2 tmp_cj = tmp_ch * tmp_ci;\n\t\t\t\t float2 tmp_ck = tmp_cj * uniform_o;\n\t\t\t\t
float2 tmp_cj = tmp_ch * tmp_ci;\n\t\t\t\t float2 tmp_ck = tmp_cj * uniform_n;\n\t\t\t\t
SetAttribute_D5151647( /*inout */attributes.scaleX, /*inout */attributes.scaleY,
tmp_ck);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t SetAttribute_65DEC944( /*inout
*/attributes.pivotZ, (float)0.180000007);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t

float tmp_cb = pow(tmp_bz, (float)0.5);\n\t\t\t\t float tmp_cd = tmp_cb
* (float)-0.400000006;\n\t\t\t\t float3 tmp_ce = float3((float)0, tmp_cd,
(float)0);\n\t\t\t\t float3 tmp_cf = tmp_bs + tmp_ce;\n\t\t\t\t float3
tmp_cg = attributes.position - uniform_b;\n\t\t\t\t float3 tmp_ch = tmp_cg
tmp_cg = attributes.position - uniform_a;\n\t\t\t\t float3 tmp_ch = tmp_cg
^ asuint(uniform_d);\n\t\t\t\t float tmp_cq = FixedRand(tmp_cp);\n\t\t\t\t
^ asuint(uniform_c);\n\t\t\t\t float tmp_cq = FixedRand(tmp_cp);\n\t\t\t\t
= SampleCurve(uniform_c,tmp_cu);\n\t\t\t\t float3 tmp_cw = float3(tmp_cv,
= SampleCurve(uniform_b,tmp_cu);\n\t\t\t\t float3 tmp_cw = float3(tmp_cv,
tmp_cv, tmp_cv);\n\t\t\t\t float3 tmp_cx = tmp_cg * tmp_cw;\n\t\t\t\t
float3 tmp_cz = tmp_cx * float3(1.00999999, 1.00999999, 1.00999999);\n\t\t\t\t
float3 tmp_da = tmp_cf + tmp_cz;\n\t\t\t\t float3 tmp_db = tmp_da + attributes.targetPosition;\n\t\t\t\t

tmp_bu = tmp_bt / uniform_f;\n\t\t\t\t float tmp_bv = tmp_bu[0];\n\t\t\t\t
float tmp_bw = tmp_bu[2];\n\t\t\t\t float2 tmp_bx = float2(tmp_bv, tmp_bw);\n\t\t\t\t
float2 tmp_bz = tmp_bx + float2(0.5, 0.5);\n\t\t\t\t float4 tmp_cb = SampleTexture(VFX_SAMPLER(texture_b),tmp_bz,(float)0);\n\t\t\t\t
float2 tmp_bz = tmp_bx + float2(0.5, 0.5);\n\t\t\t\t float4 tmp_cb = SampleTexture(VFX_SAMPLER(texture_d),tmp_bz,(float)0);\n\t\t\t\t
float tmp_cc = tmp_cb[0];\n\t\t\t\t float tmp_cd = tmp_cc * uniform_g;\n\t\t\t\t
float tmp_ce = tmp_cd + uniform_h;\n\t\t\t\t float tmp_cf = max(tmp_bs,
tmp_ce);\n\t\t\t\t float tmp_cg = attributes.targetPosition[2];\n\t\t\t\t

float tmp_bt = tmp_br[1];\n\t\t\t\t float tmp_bu = tmp_bs + tmp_bt;\n\t\t\t\t
float tmp_bv = tmp_br[0];\n\t\t\t\t float tmp_bw = tmp_bu + tmp_bv;\n\t\t\t\t
float tmp_by = pow(tmp_bw, (float)0.5);\n\t\t\t\t uint tmp_ca = attributes.particleId
^ asuint(uniform_d);\n\t\t\t\t float tmp_cb = FixedRand(tmp_ca);\n\t\t\t\t
^ asuint(uniform_c);\n\t\t\t\t float tmp_cb = FixedRand(tmp_ca);\n\t\t\t\t
= SampleCurve(uniform_n,tmp_cf);\n\t\t\t\t float2 tmp_ch = float2(tmp_cg,
= SampleCurve(uniform_m,tmp_cf);\n\t\t\t\t float2 tmp_ch = float2(tmp_cg,
float2 tmp_cj = tmp_ch * tmp_ci;\n\t\t\t\t float2 tmp_ck = tmp_cj * uniform_o;\n\t\t\t\t
float2 tmp_cj = tmp_ch * tmp_ci;\n\t\t\t\t float2 tmp_ck = tmp_cj * uniform_n;\n\t\t\t\t
SetAttribute_D5151647( /*inout */attributes.scaleX, /*inout */attributes.scaleY,
tmp_ck);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t SetAttribute_65DEC944( /*inout
*/attributes.pivotZ, (float)0.180000007);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t

VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t\t{\n\t\t\t\t
\n\t\t\t\t diffusionProfileHash = (uint)1078544746;\n\t\t\t\t}\n\t\t\t\t\n
// Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t{\n\t\t\t
\n\t\t\t diffusionProfileHash = (uint)1078544746;\n\t\t\t}\n\t\t\t\n //
Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\n\t\t\t\tfloat

float tmp_cb = pow(tmp_bz, (float)0.5);\n\t\t\t\t float tmp_cd = tmp_cb
* (float)-0.400000006;\n\t\t\t\t float3 tmp_ce = float3((float)0, tmp_cd,
(float)0);\n\t\t\t\t float3 tmp_cf = tmp_bs + tmp_ce;\n\t\t\t\t float3
tmp_cg = attributes.position - uniform_b;\n\t\t\t\t float3 tmp_ch = tmp_cg
tmp_cg = attributes.position - uniform_a;\n\t\t\t\t float3 tmp_ch = tmp_cg
^ asuint(uniform_d);\n\t\t\t\t float tmp_cq = FixedRand(tmp_cp);\n\t\t\t\t
^ asuint(uniform_c);\n\t\t\t\t float tmp_cq = FixedRand(tmp_cp);\n\t\t\t\t
= SampleCurve(uniform_c,tmp_cu);\n\t\t\t\t float3 tmp_cw = float3(tmp_cv,
= SampleCurve(uniform_b,tmp_cu);\n\t\t\t\t float3 tmp_cw = float3(tmp_cv,
tmp_cv, tmp_cv);\n\t\t\t\t float3 tmp_cx = tmp_cg * tmp_cw;\n\t\t\t\t
float3 tmp_cz = tmp_cx * float3(1.00999999, 1.00999999, 1.00999999);\n\t\t\t\t
float3 tmp_da = tmp_cf + tmp_cz;\n\t\t\t\t float3 tmp_db = tmp_da + attributes.targetPosition;\n\t\t\t\t

tmp_bu = tmp_bt / uniform_f;\n\t\t\t\t float tmp_bv = tmp_bu[0];\n\t\t\t\t
float tmp_bw = tmp_bu[2];\n\t\t\t\t float2 tmp_bx = float2(tmp_bv, tmp_bw);\n\t\t\t\t
float2 tmp_bz = tmp_bx + float2(0.5, 0.5);\n\t\t\t\t float4 tmp_cb = SampleTexture(VFX_SAMPLER(texture_b),tmp_bz,(float)0);\n\t\t\t\t
float2 tmp_bz = tmp_bx + float2(0.5, 0.5);\n\t\t\t\t float4 tmp_cb = SampleTexture(VFX_SAMPLER(texture_d),tmp_bz,(float)0);\n\t\t\t\t
float tmp_cc = tmp_cb[0];\n\t\t\t\t float tmp_cd = tmp_cc * uniform_g;\n\t\t\t\t
float tmp_ce = tmp_cd + uniform_h;\n\t\t\t\t float tmp_cf = max(tmp_bs,
tmp_ce);\n\t\t\t\t float tmp_cg = attributes.targetPosition[2];\n\t\t\t\t

float tmp_bt = tmp_br[1];\n\t\t\t\t float tmp_bu = tmp_bs + tmp_bt;\n\t\t\t\t
float tmp_bv = tmp_br[0];\n\t\t\t\t float tmp_bw = tmp_bu + tmp_bv;\n\t\t\t\t
float tmp_by = pow(tmp_bw, (float)0.5);\n\t\t\t\t uint tmp_ca = attributes.particleId
^ asuint(uniform_d);\n\t\t\t\t float tmp_cb = FixedRand(tmp_ca);\n\t\t\t\t
^ asuint(uniform_c);\n\t\t\t\t float tmp_cb = FixedRand(tmp_ca);\n\t\t\t\t
= SampleCurve(uniform_n,tmp_cf);\n\t\t\t\t float2 tmp_ch = float2(tmp_cg,
= SampleCurve(uniform_m,tmp_cf);\n\t\t\t\t float2 tmp_ch = float2(tmp_cg,
float2 tmp_cj = tmp_ch * tmp_ci;\n\t\t\t\t float2 tmp_ck = tmp_cj * uniform_o;\n\t\t\t\t
float2 tmp_cj = tmp_ch * tmp_ci;\n\t\t\t\t float2 tmp_ck = tmp_cj * uniform_n;\n\t\t\t\t
SetAttribute_D5151647( /*inout */attributes.scaleX, /*inout */attributes.scaleY,
tmp_ck);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t SetAttribute_65DEC944( /*inout
*/attributes.pivotZ, (float)0.180000007);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t

index: 0
temporaryBuffers: []
values:
- nameId: uniform_b
- nameId: uniform_a
- nameId: uniform_b
index: 31
index: 31
- nameId: uniform_d
- nameId: uniform_e
- nameId: uniform_d
- nameId: uniform_e
index: 3
index: 3
index: 23
index: 23
- nameId: uniform_h
- nameId: uniform_i
- nameId: uniform_h
index: 48
params: []
processor: {fileID: 0}

index: 0
temporaryBuffers: []
values:
- nameId: uniform_a
index: 0
index: 0
- nameId: uniform_c
- nameId: uniform_d
- nameId: uniform_c
index: 3
- nameId: uniform_e
index: 15

index: 53
- nameId: Size_e
index: 62
- nameId: uniform_n
- nameId: uniform_m
- nameId: uniform_o
- nameId: uniform_n
- nameId: texture_b
- nameId: texture_d
index: 32
- nameId: attributeMap_c
index: 78

808
Assets/Samples/MagicBook/VFX/Book.vfx
文件差异内容过多而无法显示
查看文件

384
Assets/Samples/MagicBook/VFX/Chain.vfx


VFX_PASSDEPTH_SELECTION (2)\n#define VFX_USE_ANGLEY_CURRENT 1\n#define VFX_USE_PARTICLEID_CURRENT
1\n#define VFX_USE_POSITION_CURRENT 1\n#define VFX_USE_TARGETPOSITION_CURRENT
1\n#define VFX_WORLD_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float uniform_b;\n uint3 PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n
float uniform_a;\n uint3 PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n
float angleY;\n uint particleId;\n float3 position;\n float3 targetPosition;\n};\n\nstruct
SourceAttributes\n{\n};\n\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT
&& !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer attributeBuffer;\r\nByteAddressBuffer

stripDataBuffer;\r\n#endif\r\n\r\n#include \"Packages/com.unity.visualeffectgraph/Shaders/Common/VFXCommonCompute.hlsl\"\n#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\r\nvoid
SetAttribute_48A7BEF8(inout float angleY, float Angle) /*attribute:angle Composition:Overwrite
Source:Slot Random:Off channels:Y */\n{\n angleY = Angle.x;\n}\n\n\r\n\r\n#if
HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
Source:Slot Random:Off channels:Y */\n{\n angleY = Angle.x;\n}\n\n\r\n\r\n//
Due to a bug in HLSL compiler, disable spurious \"unitialized variable\" due
to mid function return statement\r\n#pragma warning(push)\r\n#pragma warning(disable
: 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

/ (uint)2;\n uint tmp_w = tmp_v * (uint)2;\n uint tmp_x
= attributes.particleId - tmp_w;\n float tmp_y = (float)tmp_x;\n
bool tmp_ba = tmp_y == (float)0;\n uint tmp_bc = attributes.particleId
^ asuint(uniform_b);\n float tmp_bd = FixedRand(tmp_bc);\n
^ asuint(uniform_a);\n float tmp_bd = FixedRand(tmp_bc);\n
float tmp_bf = tmp_bd * (float)40;\n float tmp_bg = (float)-20 +
tmp_bf;\n float tmp_bi = (float)70 + tmp_bf;\n float
tmp_bj = tmp_ba ? tmp_bg : tmp_bi;\n SetAttribute_48A7BEF8( /*inout

VFX_PASSDEPTH_SELECTION (2)\n#define VFX_USE_PARTICLEID_CURRENT 1\n#define
VFX_USE_POSITION_CURRENT 1\n#define VFX_USE_TARGETPOSITION_CURRENT 1\n#define
VFX_WORLD_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float3 uniform_b;\n float uniform_c;\n float3 uniform_d;\n uint PADDING_0;\n
float3 uniform_e;\n uint PADDING_1;\n float3 uniform_f;\n uint PADDING_2;\nCBUFFER_END\n\nstruct
float3 uniform_a;\n float uniform_b;\n float3 uniform_c;\n uint PADDING_0;\n
float3 uniform_d;\n uint PADDING_1;\n float3 uniform_e;\n uint PADDING_2;\nCBUFFER_END\n\nstruct
Attributes\n{\n uint particleId;\n float3 position;\n float3 targetPosition;\n};\n\nstruct
SourceAttributes\n{\n};\n\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT
&& !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer attributeBuffer;\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint>

HAS_STRIPS\r\n const StripData stripData = GetStripDataFromParticleIndex(index,
PARTICLE_PER_STRIP_COUNT);\r\n InitStripAttributes(index, attributes,
stripData);\r\n#endif\r\n\t\t\t\r\n\t\t\t{\n\t\t\t float tmp_z = (float)attributes.particleId;\n\t\t\t
float tmp_ba = tmp_z / uniform_c;\n\t\t\t float tmp_bc = max(tmp_ba, (float)0);\n\t\t\t
float tmp_ba = tmp_z / uniform_b;\n\t\t\t float tmp_bc = max(tmp_ba, (float)0);\n\t\t\t
float3 tmp_bg = uniform_b * tmp_bf;\n\t\t\t float3 tmp_bh = tmp_bg * tmp_bf;\n\t\t\t
float3 tmp_bi = tmp_bh * tmp_bf;\n\t\t\t float3 tmp_bj = uniform_d * tmp_bf;\n\t\t\t
float3 tmp_bg = uniform_a * tmp_bf;\n\t\t\t float3 tmp_bh = tmp_bg * tmp_bf;\n\t\t\t
float3 tmp_bi = tmp_bh * tmp_bf;\n\t\t\t float3 tmp_bj = uniform_c * tmp_bf;\n\t\t\t
tmp_bn = tmp_bi + tmp_bm;\n\t\t\t float3 tmp_bo = uniform_e * tmp_bf;\n\t\t\t
tmp_bn = tmp_bi + tmp_bm;\n\t\t\t float3 tmp_bo = uniform_d * tmp_bf;\n\t\t\t
float3 tmp_br = tmp_bn + tmp_bq;\n\t\t\t float3 tmp_bs = uniform_f * tmp_bl;\n\t\t\t
float3 tmp_br = tmp_bn + tmp_bq;\n\t\t\t float3 tmp_bs = uniform_e * tmp_bl;\n\t\t\t
float tmp_bb = tmp_ba / uniform_c;\n\t\t\t float tmp_bc = saturate(tmp_bb);\n\t\t\t
float tmp_bb = tmp_ba / uniform_b;\n\t\t\t float tmp_bc = saturate(tmp_bb);\n\t\t\t
= float3(tmp_bg, tmp_bg, tmp_bg);\n\t\t\t float3 tmp_bi = uniform_b * tmp_bh;\n\t\t\t
= float3(tmp_bg, tmp_bg, tmp_bg);\n\t\t\t float3 tmp_bi = uniform_a * tmp_bh;\n\t\t\t
float3 tmp_bl = uniform_d * tmp_bh;\n\t\t\t float3 tmp_bm = tmp_bl * tmp_bh;\n\t\t\t
float3 tmp_bl = uniform_c * tmp_bh;\n\t\t\t float3 tmp_bm = tmp_bl * tmp_bh;\n\t\t\t
tmp_bq = uniform_e * tmp_bh;\n\t\t\t float3 tmp_br = tmp_bq * tmp_bn;\n\t\t\t
tmp_bq = uniform_d * tmp_bh;\n\t\t\t float3 tmp_br = tmp_bq * tmp_bn;\n\t\t\t
float3 tmp_bu = uniform_f * tmp_bn;\n\t\t\t float3 tmp_bv = tmp_bu * tmp_bn;\n\t\t\t
float3 tmp_bu = uniform_e * tmp_bn;\n\t\t\t float3 tmp_bv = tmp_bu * tmp_bn;\n\t\t\t
float3 tmp_bw = tmp_bv * tmp_bn;\n\t\t\t float3 tmp_bx = tmp_bt + tmp_bw;\n\t\t\t
SetAttribute_2CF40008( /*inout */attributes.targetPosition, tmp_bx);\n\t\t\t}\n\t\t\t\n\r\n\r\n\t\t\tif
(attributes.alive)\r\n\t\t\t{\r\n\t\t\t\tattributeBuffer.Store3((index * 0x8

HAS_STRIPS\r\n const StripData stripData = GetStripDataFromParticleIndex(index,
PARTICLE_PER_STRIP_COUNT);\r\n InitStripAttributes(index, attributes,
stripData);\r\n#endif\r\n\t\t\r\n\t\t{\n\t\t float tmp_z = (float)attributes.particleId;\n\t\t
float tmp_ba = tmp_z / uniform_c;\n\t\t float tmp_bc = max(tmp_ba, (float)0);\n\t\t
float tmp_ba = tmp_z / uniform_b;\n\t\t float tmp_bc = max(tmp_ba, (float)0);\n\t\t
float3 tmp_bf = float3(tmp_be, tmp_be, tmp_be);\n\t\t float3 tmp_bg = uniform_b
float3 tmp_bf = float3(tmp_be, tmp_be, tmp_be);\n\t\t float3 tmp_bg = uniform_a
= tmp_bh * tmp_bf;\n\t\t float3 tmp_bj = uniform_d * tmp_bf;\n\t\t float3
= tmp_bh * tmp_bf;\n\t\t float3 tmp_bj = uniform_c * tmp_bf;\n\t\t float3
float3 tmp_bo = uniform_e * tmp_bf;\n\t\t float3 tmp_bp = tmp_bo * tmp_bl;\n\t\t
float3 tmp_bo = uniform_d * tmp_bf;\n\t\t float3 tmp_bp = tmp_bo * tmp_bl;\n\t\t
float3 tmp_bs = uniform_f * tmp_bl;\n\t\t float3 tmp_bt = tmp_bs * tmp_bl;\n\t\t
float3 tmp_bs = uniform_e * tmp_bl;\n\t\t float3 tmp_bt = tmp_bs * tmp_bl;\n\t\t
(float)1;\n\t\t float tmp_bb = tmp_ba / uniform_c;\n\t\t float tmp_bc
(float)1;\n\t\t float tmp_bb = tmp_ba / uniform_b;\n\t\t float tmp_bc
float3 tmp_bh = float3(tmp_bg, tmp_bg, tmp_bg);\n\t\t float3 tmp_bi = uniform_b
float3 tmp_bh = float3(tmp_bg, tmp_bg, tmp_bg);\n\t\t float3 tmp_bi = uniform_a
= tmp_bj * tmp_bh;\n\t\t float3 tmp_bl = uniform_d * tmp_bh;\n\t\t float3
= tmp_bj * tmp_bh;\n\t\t float3 tmp_bl = uniform_c * tmp_bh;\n\t\t float3
float3 tmp_bq = uniform_e * tmp_bh;\n\t\t float3 tmp_br = tmp_bq * tmp_bn;\n\t\t
float3 tmp_bq = uniform_d * tmp_bh;\n\t\t float3 tmp_br = tmp_bq * tmp_bn;\n\t\t
float3 tmp_bu = uniform_f * tmp_bn;\n\t\t float3 tmp_bv = tmp_bu * tmp_bn;\n\t\t
float3 tmp_bu = uniform_e * tmp_bn;\n\t\t float3 tmp_bv = tmp_bu * tmp_bn;\n\t\t
float3 tmp_bw = tmp_bv * tmp_bn;\n\t\t float3 tmp_bx = tmp_bt + tmp_bw;\n\t\t
SetAttribute_2CF40008( /*inout */attributes.targetPosition, tmp_bx);\n\t\t}\n\t\t\n\r\n\t\tattributeBuffer.Store3((index
* 0x8 + 0x280) << 2,asuint(attributes.position));\n\t\tattributeBuffer.Store3((index

name: '[System 1]Output Particle Lit Mesh'
source: "Shader \"Hidden/VFX/Chain/System 1/Output Particle Lit Mesh\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tTags
{ \"Queue\"=\"Geometry+0\" \"IgnoreProjector\"=\"False\" \"RenderType\"=\"Opaque\"
}\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
}\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
LEqual\n\t\tZWrite On\n\t\tCull Back\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

1\n\t\t#define HDRP_MATERIAL_TYPE_STANDARD 1\n\t\t#define HDRP_USE_BASE_COLOR_MAP
1\n\t\t#define HDRP_USE_BASE_COLOR_MAP_COLOR 1\n\t\t#define HDRP_USE_BASE_COLOR_MAP_ALPHA
1\n\t\t#define HDRP_USE_MASK_MAP 1\n\t\t#define USE_NORMAL_MAP 1\n\t\t#define
HDRP_USE_BASE_COLOR 1\n\t\t#define IS_OPAQUE_NOT_SIMPLE_LIT_PARTICLE 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
HDRP_USE_BASE_COLOR 1\n\t\t#define IS_OPAQUE_NOT_SIMPLE_LIT_PARTICLE 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_WORLD_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
float3 LookAtPosition_a;\n\t\t uint PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float angleY;\n\t\t float3 position;\n\t\t

pivotY;\n\t\t float pivotZ;\n\t\t float size;\n\t\t float scaleX;\n\t\t
float scaleY;\n\t\t float scaleZ;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
baseColorMap;\n\t\tSamplerState samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\tTexture2D
maskMap;\n\t\tSamplerState samplermaskMap;\n\t\tfloat4 maskMap_TexelSize;\n\t\tTexture2D
normalMap;\n\t\tSamplerState samplernormalMap;\n\t\tfloat4 normalMap_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
baseColorMap;\n\t\tSamplerState samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\t\n\t\tTexture2D
maskMap;\n\t\tSamplerState samplermaskMap;\n\t\tfloat4 maskMap_TexelSize;\n\t\t\n\t\tTexture2D
normalMap;\n\t\tSamplerState samplernormalMap;\n\t\tfloat4 normalMap_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

instanceID : SV_InstanceID;\n\t\t\t#define VFX_GET_INSTANCE_ID(i) i.instanceID\n\t\t#endif\n\t\t\n\t\tENDHLSL\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
{ \"LightMode\"=\"SceneSelectionPass\" }\n\t\t\n\t\t\tZWrite On\n\t\t\tBlend
Off\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#define VFX_PASSDEPTH VFX_PASSDEPTH_SELECTION\n\t\t\t\n\t\t\t#pragma
target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t#pragma multi_compile _
WRITE_NORMAL_BUFFER\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\t\t\n\t\t\t\tfloat4
target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\t\t\n\t\t\t\tfloat4
pos : SV_POSITION;\n\t\t\t\tfloat2 uv : TEXCOORD0;\t\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV1\n\t\t\t
float4 uv1 : COLOR2;\n\t\t\t #endif\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV2\n\t\t\t
float4 uv2 : COLOR3;\n\t\t\t #endif\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV3\n\t\t\t

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\n\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t // Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst
uint diffusionProfileHash = 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS
= VFXGetPositionRWS(i);\n\t\t\t\tfloat4 posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs
posInput = GetPositionInput(posSS.xy, _ScreenSize.zw, posSS.z, posSS.w, posRWS,
tileIndex);\n\t\t\t\t\n\t\t\t\tfloat alpha;\n\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\n\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t //TODO: investigate why this is needed\n\t\t\t preLightData.coatPartLambdaV
= 0;\n\t\t\t preLightData.coatIblR = 0;\n\t\t\t preLightData.coatIblF
= 0;\n\t\t\t \n\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t}\n\t\t\t\n\t\t\tvoid
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t#define SHADERPASS
SHADERPASS_MOTION_VECTORS\n\t\t\t\t\t#else\n\t\t\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\tvoid VFXGetHDRPLitData(out SurfaceData
surfaceData, out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData
preLightData, VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData,
uint2 tileIndex)\n\t\t\t\t\t{\t\n\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t\t
// Loads diffusion profile\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha;\n\t\t\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\t\t\n\t\t\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\t\t\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t //TODO: investigate why this is needed\n\t\t\t\t\t
preLightData.coatPartLambdaV = 0;\n\t\t\t\t\t preLightData.coatIblR = 0;\n\t\t\t\t\t
preLightData.coatIblF = 0;\n\t\t\t\t\t \n\t\t\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvoid
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t{\n\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t}\n\t\t\t\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tvoid frag(ps_input i\n\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t,
bool frontFace : SV_IsFrontFace\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t, out float4 outMotionVector : SV_Target0\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target1\n\t\t\t\t#endif\n\t\t\t#else\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t, out float4 outColor :
SV_Target0\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t\t)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
normalWS = normalize(i.VFX_VARYING_NORMAL * faceMul);\n\t\t\t\t\t\t\tconst
VFXUVData uvData = GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
tangentWS = normalize(i.VFX_VARYING_TANGENT.xyz);\n\t\t\t\t\t\t\tfloat3 bitangentWS
= cross(normalWS,tangentWS) * (i.VFX_VARYING_TANGENT.w * faceMul);\n\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t\t\n\t\t\t float
alpha = OUTSG.;\n\t\t\t #else\n\t\t\t\tfloat alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t#if
HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\talpha *= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t#endif\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t
#ifndef VFX_SHADERGRAPH\n\t\t\t VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t
#else\n\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t normalWS = mul(n,tbn);\n\t\t\t
#endif\n\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t
\n\t\t\t surface.normalWS = normalWS;\n\t\t\t \n\t\t\t
EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface), i.VFX_VARYING_POSCS.xy,
outNormalBuffer);\n\t\t\t #endif\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t\t\t{\n\t\t\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t, bool frontFace
: SV_IsFrontFace\n\t\t\t\t\t#endif\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t// We need the depth color as SV_Target0 for
alpha to coverage\n\t\t\t\t\t\t, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t,
out float4 outMotionVector : SV_Target1\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target2\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t//
When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t\t, out
float4 outMotionVector : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t//
We need the depth color as SV_Target0 for alpha to coverage\n\t\t\t\t\t\t,
out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#elif
defined(WRITE_NORMAL_BUFFER)\n\t\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outColor
: SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3
normalWS = normalize(i.VFX_VARYING_NORMAL * faceMul);\n\t\t\t\t\t\t\t\t\tconst
VFXUVData uvData = GetUVData(i);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_TANGENT\n\t\t\t\t\t\t\t\t\tfloat3 tangentWS = normalize(i.VFX_VARYING_TANGENT.xyz);\n\t\t\t\t\t\t\t\t\tfloat3
bitangentWS = cross(normalWS,tangentWS) * (i.VFX_VARYING_TANGENT.w * faceMul);\n\t\t\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t\t\t
#else\n\t\t\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t\t\t normalWS = mul(n,tbn);\n\t\t\t\t\t
#endif\n\t\t\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t\t\t
surface.normalWS = normalWS;\n\t\t\t\t\t EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface),
i.VFX_VARYING_POSCS.xy, outNormalBuffer);\n\t\t\t\t\t #endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\toutMotionVector = encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t// We use depth prepass
for scene selection in the editor, this code allow to output the outline correctly\n\t\t\t\t\toutColor
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH ==
VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t//void\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH
undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\t//
We use depth prepass for scene selection in the editor, this code allow to
output the outline correctly\n\t\t\t\t\t\t\toutColor = float4(_ObjectId, _PassValue,
1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t//void\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined\n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t\n\t\t\t#pragma target 4.5\n\t\t\t#define
UNITY_MATERIAL_LIT\n\t\t\t#pragma multi_compile _ WRITE_NORMAL_BUFFER\n\t\t\t\n\t\t\tstruct
ps_input\n\t\t\t{\t\t\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\tfloat2 uv
: TEXCOORD0;\t\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV1\n\t\t\t float4 uv1
: COLOR2;\n\t\t\t #endif\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV2\n\t\t\t
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t#pragma multi_compile _ WRITE_NORMAL_BUFFER\n\t\t\t#pragma
multi_compile _ WRITE_MSAA_DEPTH\n\t\t\t\n\t\t\t#pragma target 4.5\n\t\t\t#define
UNITY_MATERIAL_LIT\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\t\t\n\t\t\t\tfloat4
pos : SV_POSITION;\n\t\t\t\tfloat2 uv : TEXCOORD0;\t\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV1\n\t\t\t
float4 uv1 : COLOR2;\n\t\t\t #endif\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV2\n\t\t\t
float4 uv2 : COLOR3;\n\t\t\t #endif\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV3\n\t\t\t
float4 uv3 : COLOR4;\n\t\t\t #endif\n\t\t\t #if VFX_SHADERGRAPH_HAS_COLOR\n\t\t\t
float4 vertexColor : COLOR1;\n\t\t\t #endif\n\t\t\t\t#if USE_ALPHA_TEST

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\n\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t // Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst
uint diffusionProfileHash = 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS
= VFXGetPositionRWS(i);\n\t\t\t\tfloat4 posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs
posInput = GetPositionInput(posSS.xy, _ScreenSize.zw, posSS.z, posSS.w, posRWS,
tileIndex);\n\t\t\t\t\n\t\t\t\tfloat alpha;\n\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\n\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t //TODO: investigate why this is needed\n\t\t\t preLightData.coatPartLambdaV
= 0;\n\t\t\t preLightData.coatIblR = 0;\n\t\t\t preLightData.coatIblF
= 0;\n\t\t\t \n\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t}\n\t\t\t\n\t\t\tvoid
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t#define SHADERPASS
SHADERPASS_MOTION_VECTORS\n\t\t\t\t\t#else\n\t\t\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\tvoid VFXGetHDRPLitData(out SurfaceData
surfaceData, out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData
preLightData, VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData,
uint2 tileIndex)\n\t\t\t\t\t{\t\n\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t\t
// Loads diffusion profile\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha;\n\t\t\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\t\t\n\t\t\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\t\t\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t //TODO: investigate why this is needed\n\t\t\t\t\t
preLightData.coatPartLambdaV = 0;\n\t\t\t\t\t preLightData.coatIblR = 0;\n\t\t\t\t\t
preLightData.coatIblF = 0;\n\t\t\t\t\t \n\t\t\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvoid
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t{\n\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t}\n\t\t\t\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tvoid frag(ps_input i\n\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t,
bool frontFace : SV_IsFrontFace\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t, out float4 outMotionVector : SV_Target0\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target1\n\t\t\t\t#endif\n\t\t\t#else\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t, out float4 outColor :
SV_Target0\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t\t)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
normalWS = normalize(i.VFX_VARYING_NORMAL * faceMul);\n\t\t\t\t\t\t\tconst
VFXUVData uvData = GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
tangentWS = normalize(i.VFX_VARYING_TANGENT.xyz);\n\t\t\t\t\t\t\tfloat3 bitangentWS
= cross(normalWS,tangentWS) * (i.VFX_VARYING_TANGENT.w * faceMul);\n\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t\t\n\t\t\t float
alpha = OUTSG.;\n\t\t\t #else\n\t\t\t\tfloat alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t#if
HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\talpha *= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t#endif\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t
#ifndef VFX_SHADERGRAPH\n\t\t\t VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t
#else\n\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t normalWS = mul(n,tbn);\n\t\t\t
#endif\n\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t
\n\t\t\t surface.normalWS = normalWS;\n\t\t\t \n\t\t\t
EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface), i.VFX_VARYING_POSCS.xy,
outNormalBuffer);\n\t\t\t #endif\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t\t\t{\n\t\t\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t, bool frontFace
: SV_IsFrontFace\n\t\t\t\t\t#endif\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t// We need the depth color as SV_Target0 for
alpha to coverage\n\t\t\t\t\t\t, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t,
out float4 outMotionVector : SV_Target1\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target2\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t//
When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t\t, out
float4 outMotionVector : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t//
We need the depth color as SV_Target0 for alpha to coverage\n\t\t\t\t\t\t,
out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#elif
defined(WRITE_NORMAL_BUFFER)\n\t\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outColor
: SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3
normalWS = normalize(i.VFX_VARYING_NORMAL * faceMul);\n\t\t\t\t\t\t\t\t\tconst
VFXUVData uvData = GetUVData(i);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_TANGENT\n\t\t\t\t\t\t\t\t\tfloat3 tangentWS = normalize(i.VFX_VARYING_TANGENT.xyz);\n\t\t\t\t\t\t\t\t\tfloat3
bitangentWS = cross(normalWS,tangentWS) * (i.VFX_VARYING_TANGENT.w * faceMul);\n\t\t\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t\t\t
#else\n\t\t\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t\t\t normalWS = mul(n,tbn);\n\t\t\t\t\t
#endif\n\t\t\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t\t\t
surface.normalWS = normalWS;\n\t\t\t\t\t EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface),
i.VFX_VARYING_POSCS.xy, outNormalBuffer);\n\t\t\t\t\t #endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\toutMotionVector = encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t// We use depth prepass
for scene selection in the editor, this code allow to output the outline correctly\n\t\t\t\t\toutColor
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH ==
VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t//void\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH
undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\t//
We use depth prepass for scene selection in the editor, this code allow to
output the outline correctly\n\t\t\t\t\t\t\toutColor = float4(_ObjectId, _PassValue,
1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t//void\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined\n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
{ \"LightMode\"=\"GBuffer\" }\n\t\t\t\n\t\t Stencil\n\t\t {\n\t\t
WriteMask 6\n\t\t Ref 2\n\t\t Comp Always\n\t\t Pass Replace\n\t\t
}\n\n\t\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t\n\t\t\t#pragma

index: 1
temporaryBuffers: []
values:
- nameId: uniform_b
- nameId: uniform_a
index: 18
params:
- nameId: bounds_center

index: 0
temporaryBuffers: []
values:
- nameId: uniform_a
index: 5
index: 5
- nameId: uniform_c
- nameId: uniform_d
- nameId: uniform_c
- nameId: uniform_d
index: 19
index: 19
- nameId: uniform_f
index: 3
params: []
processor: {fileID: 0}

index: 1
- nameId: _DoubleSidedNormalMode
index: 40
- nameId: _TransparentDepthPrepassEnable
index: 4
- nameId: _TransparentDepthPostpassEnable
index: 4
processor: {fileID: -6465566751694194690, guid: 0f55f867ac9350f45864c8a19670b26b,
type: 3}
shaderSourceIndex: -1

108
Assets/Samples/MagicBook/VFX/FireEmbers.vfx


1\n#define VFX_USE_AXISZ_CURRENT 1\n#define VFX_USE_SCALEX_CURRENT 1\n#define
VFX_USE_SCALEY_CURRENT 1\n#define VFX_USE_SCALEZ_CURRENT 1\n#define VFX_USE_COLOR_CURRENT
1\n#define VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float uniform_b;\n float uniform_c;\n uint2 PADDING_0;\nCBUFFER_END\n\nstruct
float uniform_a;\n float uniform_b;\n uint2 PADDING_0;\nCBUFFER_END\n\nstruct
Attributes\n{\n float lifetime;\n uint seed;\n float size;\n float3
velocity;\n float3 direction;\n float3 position;\n uint particleId;\n
float age;\n float alpha;\n bool alive;\n float3 axisX;\n float3

direction = VFXSafeNormalize(lerp(direction, Direction, DirectionBlend));\n
velocity += direction * speed;\n}\nvoid PositionAABox_18D(inout float3 position,
inout uint seed, float3 Box_center, float3 Box_size) /*positionMode:Volume
spawnMode:Random */\n{\n position = Box_size * (RAND3 - 0.5f) + Box_center;\n}\n\n\r\n\r\n#if
HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
spawnMode:Random */\n{\n position = Box_size * (RAND3 - 0.5f) + Box_center;\n}\n\n\r\n\r\n//
Due to a bug in HLSL compiler, disable spurious \"unitialized variable\" due
to mid function return statement\r\n#pragma warning(push)\r\n#pragma warning(disable
: 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

/*inout */attributes.lifetime, /*inout */attributes.seed, (float)2, (float)4);\n
}\n {\n SetAttribute_3278B543( /*inout */attributes.size,
/*inout */attributes.seed, (float)0.00999999978, (float)0.0299999993);\n
}\n {\n uint tmp_bb = attributes.particleId ^ asuint(uniform_b);\n
}\n {\n uint tmp_bb = attributes.particleId ^ asuint(uniform_a);\n
^ asuint(uniform_c);\n float tmp_bi = FixedRand(tmp_bh);\n
^ asuint(uniform_b);\n float tmp_bi = FixedRand(tmp_bh);\n
float tmp_bj = tmp_bi * (float)1.20000005;\n float tmp_bk = (float)-0.600000024
+ tmp_bj;\n float3 tmp_bl = float3(tmp_bf, (float)1, tmp_bk);\n
float3 tmp_bm = tmp_bl * tmp_bl;\n float tmp_bn = tmp_bm[2];\n

Attributes\n{\n float lifetime;\n uint seed;\n float3 velocity;\n
float3 position;\n float mass;\n float age;\n bool alive;\n};\n\nstruct
SourceAttributes\n{\n};\n\nTexture2DArray Camera_depthBuffer_c;\nSamplerState
samplerCamera_depthBuffer_c;\nfloat4 Camera_depthBuffer_c_TexelSize;\n\n\r\n\r\n#define
samplerCamera_depthBuffer_c;\nfloat4 Camera_depthBuffer_c_TexelSize;\n\n\n\r\n\r\n#define
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer
attributeBuffer;\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint> deadListOut;\r\n#endif\r\n\r\n#if
VFX_HAS_INDIRECT_DRAW\r\nRWStructuredBuffer<uint> indirectBuffer;\r\n#endif\r\n\r\n#if

float4x4 VFXToView, float4x4 ViewToClip, float4x4 ClipToView) /*camera:Main
surfaceThickness:Infinite mode:Solid radiusMode:None roughSurface:True */\n{\n
\n float3 nextPos = position + velocity * deltaTime;\n float3 viewPos
= mul(VFXToView,float4(nextPos,1.0f));\n \n float4 projPos = mul(ViewToClip,float4(viewPos,1.0f));\n
= mul(VFXToView,float4(nextPos,1.0f)).xyz;\n \n float4 projPos = mul(ViewToClip,float4(viewPos,1.0f));\n
projPos.xyz /= projPos.w;\n float2 aProjPos = abs(projPos.xy);\n \n
if (aProjPos.x < 1.0f && aProjPos.y < 1.0f) // visible on screen\n {\n
float2 uv = projPos.xy * 0.5f + 0.5f;\n float depth = LoadTexture(Camera_depthBuffer,int4(uv*Camera_pixelDimensions,

name: '[System 1]Fire Embers'
source: "Shader \"Hidden/VFX/FireEmbers/System 1/Fire Embers\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\"
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
SrcAlpha One \n\t\tBlend 1 SrcAlpha OneMinusSrcAlpha\n\t\tZTest LEqual\n\t\tZWrite
Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define NB_THREADS_PER_GROUP
64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL (0)\n\t\t#define

VFX_USE_COLOR_CURRENT 1\n\t\t#define VFX_COLORMAPPING_DEFAULT 1\n\t\t#define
IS_TRANSPARENT_PARTICLE 1\n\t\t#define USE_SOFT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_ADD
1\n\t\t#define WRITE_MOTION_VECTOR_IN_FORWARD 1\n\t\t#define VFX_BYPASS_EXPOSURE
1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_LOCAL_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
float4 Size_e;\n\t\t float Color_b;\n\t\t float currentFrameIndex;\n\t\t
uint2 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct Attributes\n\t\t{\n\t\t

float pivotY;\n\t\t float pivotZ;\n\t\t float scaleX;\n\t\t float
scaleY;\n\t\t float scaleZ;\n\t\t float3 color;\n\t\t};\n\t\t\n\t\tstruct
SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D mainTexture;\n\t\tSamplerState
samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

float angleX;\n float angleY;\n float angleZ;\n float pivotX;\n
float pivotY;\n float pivotZ;\n float scaleX;\n float scaleY;\n
float scaleZ;\n float3 color;\n};\n\nstruct SourceAttributes\n{\n};\n\nTexture2D
mainTexture;\nSamplerState samplermainTexture;\nfloat4 mainTexture_TexelSize;\n\n\r\n#include
mainTexture;\nSamplerState samplermainTexture;\nfloat4 mainTexture_TexelSize;\n\n\n\r\n#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n\r\nByteAddressBuffer
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n\r\nByteAddressBuffer
attributeBuffer;\r\nRWByteAddressBuffer elementToVFXBuffer;\r\n#if VFX_USE_ALIVE_CURRENT\r\nStructuredBuffer<uint>
deadListOut;\r\n#endif\r\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\nStructuredBuffer<uint>
indirectBuffer;\r\n#endif\r\n\r\nCBUFFER_START(updateParams)\r\n\tuint nbMax;\r\n\tuint

index: 1
temporaryBuffers: []
values:
- nameId: uniform_b
- nameId: uniform_a
- nameId: uniform_c
- nameId: uniform_b
index: 3
params:
- nameId: bounds_center

m_UISuperCollapsed: 0
m_InputSlots:
- {fileID: 157}
- {fileID: 158}
- {fileID: 159}
- {fileID: 75}
m_OutputSlots: []
m_Label: Fire Embers

m_RegexMaxLength: 0
m_Direction: 0
m_LinkedSlots: []
--- !u!114 &158
--- !u!114 &159
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}

m_UIPosition: {x: 0, y: 0}
m_UICollapsed: 1
m_UISuperCollapsed: 0
m_MasterSlot: {fileID: 158}
m_MasterSlot: {fileID: 159}
m_MasterData:
m_Owner: {fileID: 72}
m_Value:

m_SerializableObject: 1
m_Space: 2147483647
m_Property:
name: softParticlesFadeDistance
name: softParticleFadeDistance
m_serializedType:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089

732
Assets/Samples/MagicBook/VFX/FloatingRock.vfx


VFX_PASSDEPTH_SELECTION (2)\n#define VFX_USE_ANGLEY_CURRENT 1\n#define VFX_USE_PARTICLEID_CURRENT
1\n#define VFX_USE_POSITION_CURRENT 1\n#define VFX_USE_TARGETPOSITION_CURRENT
1\n#define VFX_WORLD_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float uniform_b;\n uint3 PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n
float uniform_a;\n uint3 PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n
float angleY;\n uint particleId;\n float3 position;\n float3 targetPosition;\n};\n\nstruct
SourceAttributes\n{\n};\n\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT
&& !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer attributeBuffer;\r\nByteAddressBuffer

stripDataBuffer;\r\n#endif\r\n\r\n#include \"Packages/com.unity.visualeffectgraph/Shaders/Common/VFXCommonCompute.hlsl\"\n#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\r\nvoid
SetAttribute_48A7BEF8(inout float angleY, float Angle) /*attribute:angle Composition:Overwrite
Source:Slot Random:Off channels:Y */\n{\n angleY = Angle.x;\n}\n\n\r\n\r\n#if
HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
Source:Slot Random:Off channels:Y */\n{\n angleY = Angle.x;\n}\n\n\r\n\r\n//
Due to a bug in HLSL compiler, disable spurious \"unitialized variable\" due
to mid function return statement\r\n#pragma warning(push)\r\n#pragma warning(disable
: 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

/ (uint)2;\n uint tmp_w = tmp_v * (uint)2;\n uint tmp_x
= attributes.particleId - tmp_w;\n float tmp_y = (float)tmp_x;\n
bool tmp_ba = tmp_y == (float)0;\n uint tmp_bc = attributes.particleId
^ asuint(uniform_b);\n float tmp_bd = FixedRand(tmp_bc);\n
^ asuint(uniform_a);\n float tmp_bd = FixedRand(tmp_bc);\n
float tmp_bf = tmp_bd * (float)40;\n float tmp_bg = (float)-20 +
tmp_bf;\n float tmp_bi = (float)70 + tmp_bf;\n float
tmp_bj = tmp_ba ? tmp_bg : tmp_bi;\n SetAttribute_48A7BEF8( /*inout

VFX_PASSDEPTH_SELECTION (2)\n#define VFX_USE_PARTICLEID_CURRENT 1\n#define
VFX_USE_POSITION_CURRENT 1\n#define VFX_USE_TARGETPOSITION_CURRENT 1\n#define
VFX_WORLD_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float3 uniform_b;\n uint PADDING_0;\n float3 uniform_c;\n uint PADDING_1;\n
float3 uniform_d;\n uint PADDING_2;\nCBUFFER_END\n\nstruct Attributes\n{\n
float3 uniform_a;\n uint PADDING_0;\n float3 uniform_b;\n uint PADDING_1;\n
float3 uniform_c;\n uint PADDING_2;\nCBUFFER_END\n\nstruct Attributes\n{\n
uint particleId;\n float3 position;\n float3 targetPosition;\n};\n\nstruct
SourceAttributes\n{\n};\n\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT
&& !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer attributeBuffer;\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint>

float tmp_bc = (float)1 - tmp_bb;\n\t\t\t float3 tmp_bd = float3(tmp_bc,
tmp_bc, tmp_bc);\n\t\t\t float3 tmp_be = float3(4.92999983, -3.66700006,
-0.159999996) * tmp_bd;\n\t\t\t float3 tmp_bf = tmp_be * tmp_bd;\n\t\t\t
float3 tmp_bg = tmp_bf * tmp_bd;\n\t\t\t float3 tmp_bh = uniform_b * tmp_bd;\n\t\t\t
float3 tmp_bg = tmp_bf * tmp_bd;\n\t\t\t float3 tmp_bh = uniform_a * tmp_bd;\n\t\t\t
tmp_bl = tmp_bg + tmp_bk;\n\t\t\t float3 tmp_bm = uniform_c * tmp_bd;\n\t\t\t
tmp_bl = tmp_bg + tmp_bk;\n\t\t\t float3 tmp_bm = uniform_b * tmp_bd;\n\t\t\t
float3 tmp_bp = tmp_bl + tmp_bo;\n\t\t\t float3 tmp_bq = uniform_d * tmp_bj;\n\t\t\t
float3 tmp_bp = tmp_bl + tmp_bo;\n\t\t\t float3 tmp_bq = uniform_c * tmp_bj;\n\t\t\t
float3 tmp_br = tmp_bq * tmp_bj;\n\t\t\t float3 tmp_bs = tmp_br * tmp_bj;\n\t\t\t
float3 tmp_bt = tmp_bp + tmp_bs;\n\t\t\t SetAttribute_CAC29745( /*inout
*/attributes.position, tmp_bt);\n\t\t\t}\n\t\t\t{\n\t\t\t float tmp_y =

float3 tmp_bf = float3(tmp_be, tmp_be, tmp_be);\n\t\t\t float3 tmp_bg =
float3(4.92999983, -3.66700006, -0.159999996) * tmp_bf;\n\t\t\t float3 tmp_bh
= tmp_bg * tmp_bf;\n\t\t\t float3 tmp_bi = tmp_bh * tmp_bf;\n\t\t\t float3
tmp_bj = uniform_b * tmp_bf;\n\t\t\t float3 tmp_bk = tmp_bj * tmp_bf;\n\t\t\t
tmp_bj = uniform_a * tmp_bf;\n\t\t\t float3 tmp_bk = tmp_bj * tmp_bf;\n\t\t\t
tmp_bo = uniform_c * tmp_bf;\n\t\t\t float3 tmp_bp = tmp_bo * tmp_bl;\n\t\t\t
tmp_bo = uniform_b * tmp_bf;\n\t\t\t float3 tmp_bp = tmp_bo * tmp_bl;\n\t\t\t
float3 tmp_bs = uniform_d * tmp_bl;\n\t\t\t float3 tmp_bt = tmp_bs * tmp_bl;\n\t\t\t
float3 tmp_bs = uniform_c * tmp_bl;\n\t\t\t float3 tmp_bt = tmp_bs * tmp_bl;\n\t\t\t
float3 tmp_bu = tmp_bt * tmp_bl;\n\t\t\t float3 tmp_bv = tmp_br + tmp_bu;\n\t\t\t
SetAttribute_2CF40008( /*inout */attributes.targetPosition, tmp_bv);\n\t\t\t}\n\t\t\t\n\r\n\r\n\t\t\tif
(attributes.alive)\r\n\t\t\t{\r\n\t\t\t\tattributeBuffer.Store3((index * 0x8

float tmp_bc = (float)1 - tmp_bb;\n\t\t float3 tmp_bd = float3(tmp_bc, tmp_bc,
tmp_bc);\n\t\t float3 tmp_be = float3(4.92999983, -3.66700006, -0.159999996)
* tmp_bd;\n\t\t float3 tmp_bf = tmp_be * tmp_bd;\n\t\t float3 tmp_bg
= tmp_bf * tmp_bd;\n\t\t float3 tmp_bh = uniform_b * tmp_bd;\n\t\t float3
= tmp_bf * tmp_bd;\n\t\t float3 tmp_bh = uniform_a * tmp_bd;\n\t\t float3
float3 tmp_bm = uniform_c * tmp_bd;\n\t\t float3 tmp_bn = tmp_bm * tmp_bj;\n\t\t
float3 tmp_bm = uniform_b * tmp_bd;\n\t\t float3 tmp_bn = tmp_bm * tmp_bj;\n\t\t
float3 tmp_bq = uniform_d * tmp_bj;\n\t\t float3 tmp_br = tmp_bq * tmp_bj;\n\t\t
float3 tmp_bq = uniform_c * tmp_bj;\n\t\t float3 tmp_br = tmp_bq * tmp_bj;\n\t\t
float3 tmp_bs = tmp_br * tmp_bj;\n\t\t float3 tmp_bt = tmp_bp + tmp_bs;\n\t\t
SetAttribute_CAC29745( /*inout */attributes.position, tmp_bt);\n\t\t}\n\t\t{\n\t\t
float tmp_y = (float)attributes.particleId;\n\t\t float tmp_z = tmp_y +

tmp_be);\n\t\t float3 tmp_bg = float3(4.92999983, -3.66700006, -0.159999996)
* tmp_bf;\n\t\t float3 tmp_bh = tmp_bg * tmp_bf;\n\t\t float3 tmp_bi
= tmp_bh * tmp_bf;\n\t\t float3 tmp_bj = uniform_b * tmp_bf;\n\t\t float3
= tmp_bh * tmp_bf;\n\t\t float3 tmp_bj = uniform_a * tmp_bf;\n\t\t float3
float3 tmp_bo = uniform_c * tmp_bf;\n\t\t float3 tmp_bp = tmp_bo * tmp_bl;\n\t\t
float3 tmp_bo = uniform_b * tmp_bf;\n\t\t float3 tmp_bp = tmp_bo * tmp_bl;\n\t\t
float3 tmp_bs = uniform_d * tmp_bl;\n\t\t float3 tmp_bt = tmp_bs * tmp_bl;\n\t\t
float3 tmp_bs = uniform_c * tmp_bl;\n\t\t float3 tmp_bt = tmp_bs * tmp_bl;\n\t\t
float3 tmp_bu = tmp_bt * tmp_bl;\n\t\t float3 tmp_bv = tmp_br + tmp_bu;\n\t\t
SetAttribute_2CF40008( /*inout */attributes.targetPosition, tmp_bv);\n\t\t}\n\t\t\n\r\n\t\tattributeBuffer.Store3((index
* 0x8 + 0x280) << 2,asuint(attributes.position));\n\t\tattributeBuffer.Store3((index

name: '[System 2]Output Particle Lit Mesh'
source: "Shader \"Hidden/VFX/Chain/System 2/Output Particle Lit Mesh\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tTags
{ \"Queue\"=\"Geometry+0\" \"IgnoreProjector\"=\"False\" \"RenderType\"=\"Opaque\"
}\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
}\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
LEqual\n\t\tZWrite On\n\t\tCull Back\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

1\n\t\t#define HDRP_MATERIAL_TYPE_STANDARD 1\n\t\t#define HDRP_USE_BASE_COLOR_MAP
1\n\t\t#define HDRP_USE_BASE_COLOR_MAP_COLOR 1\n\t\t#define HDRP_USE_BASE_COLOR_MAP_ALPHA
1\n\t\t#define HDRP_USE_MASK_MAP 1\n\t\t#define USE_NORMAL_MAP 1\n\t\t#define
HDRP_USE_BASE_COLOR 1\n\t\t#define IS_OPAQUE_NOT_SIMPLE_LIT_PARTICLE 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
HDRP_USE_BASE_COLOR 1\n\t\t#define IS_OPAQUE_NOT_SIMPLE_LIT_PARTICLE 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_WORLD_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
float3 LookAtPosition_a;\n\t\t uint PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float angleY;\n\t\t float3 position;\n\t\t

pivotY;\n\t\t float pivotZ;\n\t\t float size;\n\t\t float scaleX;\n\t\t
float scaleY;\n\t\t float scaleZ;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
baseColorMap;\n\t\tSamplerState samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\tTexture2D
maskMap;\n\t\tSamplerState samplermaskMap;\n\t\tfloat4 maskMap_TexelSize;\n\t\tTexture2D
normalMap;\n\t\tSamplerState samplernormalMap;\n\t\tfloat4 normalMap_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
baseColorMap;\n\t\tSamplerState samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\t\n\t\tTexture2D
maskMap;\n\t\tSamplerState samplermaskMap;\n\t\tfloat4 maskMap_TexelSize;\n\t\t\n\t\tTexture2D
normalMap;\n\t\tSamplerState samplernormalMap;\n\t\tfloat4 normalMap_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

instanceID : SV_InstanceID;\n\t\t\t#define VFX_GET_INSTANCE_ID(i) i.instanceID\n\t\t#endif\n\t\t\n\t\tENDHLSL\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
{ \"LightMode\"=\"SceneSelectionPass\" }\n\t\t\n\t\t\tZWrite On\n\t\t\tBlend
Off\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#define VFX_PASSDEPTH VFX_PASSDEPTH_SELECTION\n\t\t\t\n\t\t\t#pragma
target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t#pragma multi_compile _
WRITE_NORMAL_BUFFER\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\t\t\n\t\t\t\tfloat4
target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\t\t\n\t\t\t\tfloat4
pos : SV_POSITION;\n\t\t\t\tfloat2 uv : TEXCOORD0;\t\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV1\n\t\t\t
float4 uv1 : COLOR2;\n\t\t\t #endif\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV2\n\t\t\t
float4 uv2 : COLOR3;\n\t\t\t #endif\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV3\n\t\t\t

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\n\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t // Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst
uint diffusionProfileHash = 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS
= VFXGetPositionRWS(i);\n\t\t\t\tfloat4 posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs
posInput = GetPositionInput(posSS.xy, _ScreenSize.zw, posSS.z, posSS.w, posRWS,
tileIndex);\n\t\t\t\t\n\t\t\t\tfloat alpha;\n\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\n\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t //TODO: investigate why this is needed\n\t\t\t preLightData.coatPartLambdaV
= 0;\n\t\t\t preLightData.coatIblR = 0;\n\t\t\t preLightData.coatIblF
= 0;\n\t\t\t \n\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t}\n\t\t\t\n\t\t\tvoid
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t#define SHADERPASS
SHADERPASS_MOTION_VECTORS\n\t\t\t\t\t#else\n\t\t\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\tvoid VFXGetHDRPLitData(out SurfaceData
surfaceData, out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData
preLightData, VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData,
uint2 tileIndex)\n\t\t\t\t\t{\t\n\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t\t
// Loads diffusion profile\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha;\n\t\t\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\t\t\n\t\t\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\t\t\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t //TODO: investigate why this is needed\n\t\t\t\t\t
preLightData.coatPartLambdaV = 0;\n\t\t\t\t\t preLightData.coatIblR = 0;\n\t\t\t\t\t
preLightData.coatIblF = 0;\n\t\t\t\t\t \n\t\t\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvoid
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t{\n\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t}\n\t\t\t\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tvoid frag(ps_input i\n\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t,
bool frontFace : SV_IsFrontFace\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t, out float4 outMotionVector : SV_Target0\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target1\n\t\t\t\t#endif\n\t\t\t#else\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t, out float4 outColor :
SV_Target0\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t\t)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
normalWS = normalize(i.VFX_VARYING_NORMAL * faceMul);\n\t\t\t\t\t\t\tconst
VFXUVData uvData = GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
tangentWS = normalize(i.VFX_VARYING_TANGENT.xyz);\n\t\t\t\t\t\t\tfloat3 bitangentWS
= cross(normalWS,tangentWS) * (i.VFX_VARYING_TANGENT.w * faceMul);\n\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t\t\n\t\t\t float
alpha = OUTSG.;\n\t\t\t #else\n\t\t\t\tfloat alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t#if
HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\talpha *= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t#endif\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t
#ifndef VFX_SHADERGRAPH\n\t\t\t VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t
#else\n\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t normalWS = mul(n,tbn);\n\t\t\t
#endif\n\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t
\n\t\t\t surface.normalWS = normalWS;\n\t\t\t \n\t\t\t
EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface), i.VFX_VARYING_POSCS.xy,
outNormalBuffer);\n\t\t\t #endif\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t\t\t{\n\t\t\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t, bool frontFace
: SV_IsFrontFace\n\t\t\t\t\t#endif\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t// We need the depth color as SV_Target0 for
alpha to coverage\n\t\t\t\t\t\t, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t,
out float4 outMotionVector : SV_Target1\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target2\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t//
When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t\t, out
float4 outMotionVector : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t//
We need the depth color as SV_Target0 for alpha to coverage\n\t\t\t\t\t\t,
out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#elif
defined(WRITE_NORMAL_BUFFER)\n\t\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outColor
: SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3
normalWS = normalize(i.VFX_VARYING_NORMAL * faceMul);\n\t\t\t\t\t\t\t\t\tconst
VFXUVData uvData = GetUVData(i);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_TANGENT\n\t\t\t\t\t\t\t\t\tfloat3 tangentWS = normalize(i.VFX_VARYING_TANGENT.xyz);\n\t\t\t\t\t\t\t\t\tfloat3
bitangentWS = cross(normalWS,tangentWS) * (i.VFX_VARYING_TANGENT.w * faceMul);\n\t\t\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t\t\t
#else\n\t\t\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t\t\t normalWS = mul(n,tbn);\n\t\t\t\t\t
#endif\n\t\t\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t\t\t
surface.normalWS = normalWS;\n\t\t\t\t\t EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface),
i.VFX_VARYING_POSCS.xy, outNormalBuffer);\n\t\t\t\t\t #endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\toutMotionVector = encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t// We use depth prepass
for scene selection in the editor, this code allow to output the outline correctly\n\t\t\t\t\toutColor
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH ==
VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t//void\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH
undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\t//
We use depth prepass for scene selection in the editor, this code allow to
output the outline correctly\n\t\t\t\t\t\t\toutColor = float4(_ObjectId, _PassValue,
1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t//void\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined\n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t\n\t\t\t#pragma target 4.5\n\t\t\t#define
UNITY_MATERIAL_LIT\n\t\t\t#pragma multi_compile _ WRITE_NORMAL_BUFFER\n\t\t\t\n\t\t\tstruct
ps_input\n\t\t\t{\t\t\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\tfloat2 uv
: TEXCOORD0;\t\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV1\n\t\t\t float4 uv1
: COLOR2;\n\t\t\t #endif\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV2\n\t\t\t
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t#pragma multi_compile _ WRITE_NORMAL_BUFFER\n\t\t\t#pragma
multi_compile _ WRITE_MSAA_DEPTH\n\t\t\t\n\t\t\t#pragma target 4.5\n\t\t\t#define
UNITY_MATERIAL_LIT\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\t\t\n\t\t\t\tfloat4
pos : SV_POSITION;\n\t\t\t\tfloat2 uv : TEXCOORD0;\t\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV1\n\t\t\t
float4 uv1 : COLOR2;\n\t\t\t #endif\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV2\n\t\t\t
float4 uv2 : COLOR3;\n\t\t\t #endif\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV3\n\t\t\t
float4 uv3 : COLOR4;\n\t\t\t #endif\n\t\t\t #if VFX_SHADERGRAPH_HAS_COLOR\n\t\t\t
float4 vertexColor : COLOR1;\n\t\t\t #endif\n\t\t\t\t#if USE_ALPHA_TEST

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\n\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t // Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst
uint diffusionProfileHash = 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS
= VFXGetPositionRWS(i);\n\t\t\t\tfloat4 posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs
posInput = GetPositionInput(posSS.xy, _ScreenSize.zw, posSS.z, posSS.w, posRWS,
tileIndex);\n\t\t\t\t\n\t\t\t\tfloat alpha;\n\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\n\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t //TODO: investigate why this is needed\n\t\t\t preLightData.coatPartLambdaV
= 0;\n\t\t\t preLightData.coatIblR = 0;\n\t\t\t preLightData.coatIblF
= 0;\n\t\t\t \n\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t}\n\t\t\t\n\t\t\tvoid
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t#define SHADERPASS
SHADERPASS_MOTION_VECTORS\n\t\t\t\t\t#else\n\t\t\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\tvoid VFXGetHDRPLitData(out SurfaceData
surfaceData, out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData
preLightData, VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData,
uint2 tileIndex)\n\t\t\t\t\t{\t\n\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t\t
// Loads diffusion profile\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha;\n\t\t\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\t\t\n\t\t\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\t\t\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t //TODO: investigate why this is needed\n\t\t\t\t\t
preLightData.coatPartLambdaV = 0;\n\t\t\t\t\t preLightData.coatIblR = 0;\n\t\t\t\t\t
preLightData.coatIblF = 0;\n\t\t\t\t\t \n\t\t\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvoid
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t{\n\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t}\n\t\t\t\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tvoid frag(ps_input i\n\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t,
bool frontFace : SV_IsFrontFace\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t, out float4 outMotionVector : SV_Target0\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target1\n\t\t\t\t#endif\n\t\t\t#else\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t, out float4 outColor :
SV_Target0\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t\t)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
normalWS = normalize(i.VFX_VARYING_NORMAL * faceMul);\n\t\t\t\t\t\t\tconst
VFXUVData uvData = GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
tangentWS = normalize(i.VFX_VARYING_TANGENT.xyz);\n\t\t\t\t\t\t\tfloat3 bitangentWS
= cross(normalWS,tangentWS) * (i.VFX_VARYING_TANGENT.w * faceMul);\n\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t\t\n\t\t\t float
alpha = OUTSG.;\n\t\t\t #else\n\t\t\t\tfloat alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t#if
HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\talpha *= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t#endif\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t
#ifndef VFX_SHADERGRAPH\n\t\t\t VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t
#else\n\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t normalWS = mul(n,tbn);\n\t\t\t
#endif\n\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t
\n\t\t\t surface.normalWS = normalWS;\n\t\t\t \n\t\t\t
EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface), i.VFX_VARYING_POSCS.xy,
outNormalBuffer);\n\t\t\t #endif\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t\t\t{\n\t\t\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t, bool frontFace
: SV_IsFrontFace\n\t\t\t\t\t#endif\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t// We need the depth color as SV_Target0 for
alpha to coverage\n\t\t\t\t\t\t, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t,
out float4 outMotionVector : SV_Target1\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target2\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t//
When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t\t, out
float4 outMotionVector : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t//
We need the depth color as SV_Target0 for alpha to coverage\n\t\t\t\t\t\t,
out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#elif
defined(WRITE_NORMAL_BUFFER)\n\t\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outColor
: SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3
normalWS = normalize(i.VFX_VARYING_NORMAL * faceMul);\n\t\t\t\t\t\t\t\t\tconst
VFXUVData uvData = GetUVData(i);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_TANGENT\n\t\t\t\t\t\t\t\t\tfloat3 tangentWS = normalize(i.VFX_VARYING_TANGENT.xyz);\n\t\t\t\t\t\t\t\t\tfloat3
bitangentWS = cross(normalWS,tangentWS) * (i.VFX_VARYING_TANGENT.w * faceMul);\n\t\t\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t\t\t
#else\n\t\t\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t\t\t normalWS = mul(n,tbn);\n\t\t\t\t\t
#endif\n\t\t\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t\t\t
surface.normalWS = normalWS;\n\t\t\t\t\t EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface),
i.VFX_VARYING_POSCS.xy, outNormalBuffer);\n\t\t\t\t\t #endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\toutMotionVector = encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t// We use depth prepass
for scene selection in the editor, this code allow to output the outline correctly\n\t\t\t\t\toutColor
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH ==
VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t//void\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH
undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\t//
We use depth prepass for scene selection in the editor, this code allow to
output the outline correctly\n\t\t\t\t\t\t\toutColor = float4(_ObjectId, _PassValue,
1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t//void\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined\n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
{ \"LightMode\"=\"GBuffer\" }\n\t\t\t\n\t\t Stencil\n\t\t {\n\t\t
WriteMask 6\n\t\t Ref 2\n\t\t Comp Always\n\t\t Pass Replace\n\t\t
}\n\n\t\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t\n\t\t\t#pragma

VFX_PASSDEPTH_SELECTION (2)\n#define VFX_USE_ANGLEY_CURRENT 1\n#define VFX_USE_PARTICLEID_CURRENT
1\n#define VFX_USE_POSITION_CURRENT 1\n#define VFX_USE_TARGETPOSITION_CURRENT
1\n#define VFX_WORLD_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float uniform_b;\n uint3 PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n
float uniform_a;\n uint3 PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n
float angleY;\n uint particleId;\n float3 position;\n float3 targetPosition;\n};\n\nstruct
SourceAttributes\n{\n};\n\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT
&& !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer attributeBuffer;\r\nByteAddressBuffer

stripDataBuffer;\r\n#endif\r\n\r\n#include \"Packages/com.unity.visualeffectgraph/Shaders/Common/VFXCommonCompute.hlsl\"\n#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\r\nvoid
SetAttribute_48A7BEF8(inout float angleY, float Angle) /*attribute:angle Composition:Overwrite
Source:Slot Random:Off channels:Y */\n{\n angleY = Angle.x;\n}\n\n\r\n\r\n#if
HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
Source:Slot Random:Off channels:Y */\n{\n angleY = Angle.x;\n}\n\n\r\n\r\n//
Due to a bug in HLSL compiler, disable spurious \"unitialized variable\" due
to mid function return statement\r\n#pragma warning(push)\r\n#pragma warning(disable
: 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

/ (uint)2;\n uint tmp_w = tmp_v * (uint)2;\n uint tmp_x
= attributes.particleId - tmp_w;\n float tmp_y = (float)tmp_x;\n
bool tmp_ba = tmp_y == (float)0;\n uint tmp_bc = attributes.particleId
^ asuint(uniform_b);\n float tmp_bd = FixedRand(tmp_bc);\n
^ asuint(uniform_a);\n float tmp_bd = FixedRand(tmp_bc);\n
float tmp_bf = tmp_bd * (float)40;\n float tmp_bg = (float)-20 +
tmp_bf;\n float tmp_bi = (float)70 + tmp_bf;\n float
tmp_bj = tmp_ba ? tmp_bg : tmp_bi;\n SetAttribute_48A7BEF8( /*inout

VFX_PASSDEPTH_SELECTION (2)\n#define VFX_USE_PARTICLEID_CURRENT 1\n#define
VFX_USE_POSITION_CURRENT 1\n#define VFX_USE_TARGETPOSITION_CURRENT 1\n#define
VFX_WORLD_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float3 uniform_b;\n uint PADDING_0;\n float3 uniform_c;\n uint PADDING_1;\n
float3 uniform_d;\n uint PADDING_2;\nCBUFFER_END\n\nstruct Attributes\n{\n
float3 uniform_a;\n uint PADDING_0;\n float3 uniform_b;\n uint PADDING_1;\n
float3 uniform_c;\n uint PADDING_2;\nCBUFFER_END\n\nstruct Attributes\n{\n
uint particleId;\n float3 position;\n float3 targetPosition;\n};\n\nstruct
SourceAttributes\n{\n};\n\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT
&& !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer attributeBuffer;\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint>

float tmp_bc = (float)1 - tmp_bb;\n\t\t\t float3 tmp_bd = float3(tmp_bc,
tmp_bc, tmp_bc);\n\t\t\t float3 tmp_be = float3(-4.71000004, -3.05299997,
5.30000019) * tmp_bd;\n\t\t\t float3 tmp_bf = tmp_be * tmp_bd;\n\t\t\t
float3 tmp_bg = tmp_bf * tmp_bd;\n\t\t\t float3 tmp_bh = uniform_b * tmp_bd;\n\t\t\t
float3 tmp_bg = tmp_bf * tmp_bd;\n\t\t\t float3 tmp_bh = uniform_a * tmp_bd;\n\t\t\t
tmp_bl = tmp_bg + tmp_bk;\n\t\t\t float3 tmp_bm = uniform_c * tmp_bd;\n\t\t\t
tmp_bl = tmp_bg + tmp_bk;\n\t\t\t float3 tmp_bm = uniform_b * tmp_bd;\n\t\t\t
float3 tmp_bp = tmp_bl + tmp_bo;\n\t\t\t float3 tmp_bq = uniform_d * tmp_bj;\n\t\t\t
float3 tmp_bp = tmp_bl + tmp_bo;\n\t\t\t float3 tmp_bq = uniform_c * tmp_bj;\n\t\t\t
float3 tmp_br = tmp_bq * tmp_bj;\n\t\t\t float3 tmp_bs = tmp_br * tmp_bj;\n\t\t\t
float3 tmp_bt = tmp_bp + tmp_bs;\n\t\t\t SetAttribute_CAC29745( /*inout
*/attributes.position, tmp_bt);\n\t\t\t}\n\t\t\t{\n\t\t\t float tmp_y =

float3 tmp_bf = float3(tmp_be, tmp_be, tmp_be);\n\t\t\t float3 tmp_bg =
float3(-4.71000004, -3.05299997, 5.30000019) * tmp_bf;\n\t\t\t float3 tmp_bh
= tmp_bg * tmp_bf;\n\t\t\t float3 tmp_bi = tmp_bh * tmp_bf;\n\t\t\t float3
tmp_bj = uniform_b * tmp_bf;\n\t\t\t float3 tmp_bk = tmp_bj * tmp_bf;\n\t\t\t
tmp_bj = uniform_a * tmp_bf;\n\t\t\t float3 tmp_bk = tmp_bj * tmp_bf;\n\t\t\t
tmp_bo = uniform_c * tmp_bf;\n\t\t\t float3 tmp_bp = tmp_bo * tmp_bl;\n\t\t\t
tmp_bo = uniform_b * tmp_bf;\n\t\t\t float3 tmp_bp = tmp_bo * tmp_bl;\n\t\t\t
float3 tmp_bs = uniform_d * tmp_bl;\n\t\t\t float3 tmp_bt = tmp_bs * tmp_bl;\n\t\t\t
float3 tmp_bs = uniform_c * tmp_bl;\n\t\t\t float3 tmp_bt = tmp_bs * tmp_bl;\n\t\t\t
float3 tmp_bu = tmp_bt * tmp_bl;\n\t\t\t float3 tmp_bv = tmp_br + tmp_bu;\n\t\t\t
SetAttribute_2CF40008( /*inout */attributes.targetPosition, tmp_bv);\n\t\t\t}\n\t\t\t\n\r\n\r\n\t\t\tif
(attributes.alive)\r\n\t\t\t{\r\n\t\t\t\tattributeBuffer.Store3((index * 0x8

float tmp_bc = (float)1 - tmp_bb;\n\t\t float3 tmp_bd = float3(tmp_bc, tmp_bc,
tmp_bc);\n\t\t float3 tmp_be = float3(-4.71000004, -3.05299997, 5.30000019)
* tmp_bd;\n\t\t float3 tmp_bf = tmp_be * tmp_bd;\n\t\t float3 tmp_bg
= tmp_bf * tmp_bd;\n\t\t float3 tmp_bh = uniform_b * tmp_bd;\n\t\t float3
= tmp_bf * tmp_bd;\n\t\t float3 tmp_bh = uniform_a * tmp_bd;\n\t\t float3
float3 tmp_bm = uniform_c * tmp_bd;\n\t\t float3 tmp_bn = tmp_bm * tmp_bj;\n\t\t
float3 tmp_bm = uniform_b * tmp_bd;\n\t\t float3 tmp_bn = tmp_bm * tmp_bj;\n\t\t
float3 tmp_bq = uniform_d * tmp_bj;\n\t\t float3 tmp_br = tmp_bq * tmp_bj;\n\t\t
float3 tmp_bq = uniform_c * tmp_bj;\n\t\t float3 tmp_br = tmp_bq * tmp_bj;\n\t\t
float3 tmp_bs = tmp_br * tmp_bj;\n\t\t float3 tmp_bt = tmp_bp + tmp_bs;\n\t\t
SetAttribute_CAC29745( /*inout */attributes.position, tmp_bt);\n\t\t}\n\t\t{\n\t\t
float tmp_y = (float)attributes.particleId;\n\t\t float tmp_z = tmp_y +

tmp_be);\n\t\t float3 tmp_bg = float3(-4.71000004, -3.05299997, 5.30000019)
* tmp_bf;\n\t\t float3 tmp_bh = tmp_bg * tmp_bf;\n\t\t float3 tmp_bi
= tmp_bh * tmp_bf;\n\t\t float3 tmp_bj = uniform_b * tmp_bf;\n\t\t float3
= tmp_bh * tmp_bf;\n\t\t float3 tmp_bj = uniform_a * tmp_bf;\n\t\t float3
float3 tmp_bo = uniform_c * tmp_bf;\n\t\t float3 tmp_bp = tmp_bo * tmp_bl;\n\t\t
float3 tmp_bo = uniform_b * tmp_bf;\n\t\t float3 tmp_bp = tmp_bo * tmp_bl;\n\t\t
float3 tmp_bs = uniform_d * tmp_bl;\n\t\t float3 tmp_bt = tmp_bs * tmp_bl;\n\t\t
float3 tmp_bs = uniform_c * tmp_bl;\n\t\t float3 tmp_bt = tmp_bs * tmp_bl;\n\t\t
float3 tmp_bu = tmp_bt * tmp_bl;\n\t\t float3 tmp_bv = tmp_br + tmp_bu;\n\t\t
SetAttribute_2CF40008( /*inout */attributes.targetPosition, tmp_bv);\n\t\t}\n\t\t\n\r\n\t\tattributeBuffer.Store3((index
* 0x8 + 0x280) << 2,asuint(attributes.position));\n\t\tattributeBuffer.Store3((index

name: '[System 4]Output Particle Lit Mesh'
source: "Shader \"Hidden/VFX/Chain/System 4/Output Particle Lit Mesh\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tTags
{ \"Queue\"=\"Geometry+0\" \"IgnoreProjector\"=\"False\" \"RenderType\"=\"Opaque\"
}\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
}\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
LEqual\n\t\tZWrite On\n\t\tCull Back\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

1\n\t\t#define HDRP_MATERIAL_TYPE_STANDARD 1\n\t\t#define HDRP_USE_BASE_COLOR_MAP
1\n\t\t#define HDRP_USE_BASE_COLOR_MAP_COLOR 1\n\t\t#define HDRP_USE_BASE_COLOR_MAP_ALPHA
1\n\t\t#define HDRP_USE_MASK_MAP 1\n\t\t#define USE_NORMAL_MAP 1\n\t\t#define
HDRP_USE_BASE_COLOR 1\n\t\t#define IS_OPAQUE_NOT_SIMPLE_LIT_PARTICLE 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
HDRP_USE_BASE_COLOR 1\n\t\t#define IS_OPAQUE_NOT_SIMPLE_LIT_PARTICLE 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_WORLD_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
float3 LookAtPosition_a;\n\t\t uint PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float angleY;\n\t\t float3 position;\n\t\t

pivotY;\n\t\t float pivotZ;\n\t\t float size;\n\t\t float scaleX;\n\t\t
float scaleY;\n\t\t float scaleZ;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
baseColorMap;\n\t\tSamplerState samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\tTexture2D
maskMap;\n\t\tSamplerState samplermaskMap;\n\t\tfloat4 maskMap_TexelSize;\n\t\tTexture2D
normalMap;\n\t\tSamplerState samplernormalMap;\n\t\tfloat4 normalMap_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
baseColorMap;\n\t\tSamplerState samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\t\n\t\tTexture2D
maskMap;\n\t\tSamplerState samplermaskMap;\n\t\tfloat4 maskMap_TexelSize;\n\t\t\n\t\tTexture2D
normalMap;\n\t\tSamplerState samplernormalMap;\n\t\tfloat4 normalMap_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

instanceID : SV_InstanceID;\n\t\t\t#define VFX_GET_INSTANCE_ID(i) i.instanceID\n\t\t#endif\n\t\t\n\t\tENDHLSL\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
{ \"LightMode\"=\"SceneSelectionPass\" }\n\t\t\n\t\t\tZWrite On\n\t\t\tBlend
Off\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#define VFX_PASSDEPTH VFX_PASSDEPTH_SELECTION\n\t\t\t\n\t\t\t#pragma
target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t#pragma multi_compile _
WRITE_NORMAL_BUFFER\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\t\t\n\t\t\t\tfloat4
target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\t\t\n\t\t\t\tfloat4
pos : SV_POSITION;\n\t\t\t\tfloat2 uv : TEXCOORD0;\t\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV1\n\t\t\t
float4 uv1 : COLOR2;\n\t\t\t #endif\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV2\n\t\t\t
float4 uv2 : COLOR3;\n\t\t\t #endif\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV3\n\t\t\t

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\n\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t // Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst
uint diffusionProfileHash = 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS
= VFXGetPositionRWS(i);\n\t\t\t\tfloat4 posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs
posInput = GetPositionInput(posSS.xy, _ScreenSize.zw, posSS.z, posSS.w, posRWS,
tileIndex);\n\t\t\t\t\n\t\t\t\tfloat alpha;\n\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\n\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t //TODO: investigate why this is needed\n\t\t\t preLightData.coatPartLambdaV
= 0;\n\t\t\t preLightData.coatIblR = 0;\n\t\t\t preLightData.coatIblF
= 0;\n\t\t\t \n\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t}\n\t\t\t\n\t\t\tvoid
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t#define SHADERPASS
SHADERPASS_MOTION_VECTORS\n\t\t\t\t\t#else\n\t\t\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\tvoid VFXGetHDRPLitData(out SurfaceData
surfaceData, out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData
preLightData, VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData,
uint2 tileIndex)\n\t\t\t\t\t{\t\n\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t\t
// Loads diffusion profile\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha;\n\t\t\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\t\t\n\t\t\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\t\t\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t //TODO: investigate why this is needed\n\t\t\t\t\t
preLightData.coatPartLambdaV = 0;\n\t\t\t\t\t preLightData.coatIblR = 0;\n\t\t\t\t\t
preLightData.coatIblF = 0;\n\t\t\t\t\t \n\t\t\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvoid
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t{\n\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t}\n\t\t\t\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tvoid frag(ps_input i\n\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t,
bool frontFace : SV_IsFrontFace\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t, out float4 outMotionVector : SV_Target0\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target1\n\t\t\t\t#endif\n\t\t\t#else\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t, out float4 outColor :
SV_Target0\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t\t)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
normalWS = normalize(i.VFX_VARYING_NORMAL * faceMul);\n\t\t\t\t\t\t\tconst
VFXUVData uvData = GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
tangentWS = normalize(i.VFX_VARYING_TANGENT.xyz);\n\t\t\t\t\t\t\tfloat3 bitangentWS
= cross(normalWS,tangentWS) * (i.VFX_VARYING_TANGENT.w * faceMul);\n\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t\t\n\t\t\t float
alpha = OUTSG.;\n\t\t\t #else\n\t\t\t\tfloat alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t#if
HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\talpha *= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t#endif\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t
#ifndef VFX_SHADERGRAPH\n\t\t\t VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t
#else\n\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t normalWS = mul(n,tbn);\n\t\t\t
#endif\n\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t
\n\t\t\t surface.normalWS = normalWS;\n\t\t\t \n\t\t\t
EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface), i.VFX_VARYING_POSCS.xy,
outNormalBuffer);\n\t\t\t #endif\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t\t\t{\n\t\t\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t, bool frontFace
: SV_IsFrontFace\n\t\t\t\t\t#endif\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t// We need the depth color as SV_Target0 for
alpha to coverage\n\t\t\t\t\t\t, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t,
out float4 outMotionVector : SV_Target1\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target2\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t//
When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t\t, out
float4 outMotionVector : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t//
We need the depth color as SV_Target0 for alpha to coverage\n\t\t\t\t\t\t,
out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#elif
defined(WRITE_NORMAL_BUFFER)\n\t\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outColor
: SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3
normalWS = normalize(i.VFX_VARYING_NORMAL * faceMul);\n\t\t\t\t\t\t\t\t\tconst
VFXUVData uvData = GetUVData(i);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_TANGENT\n\t\t\t\t\t\t\t\t\tfloat3 tangentWS = normalize(i.VFX_VARYING_TANGENT.xyz);\n\t\t\t\t\t\t\t\t\tfloat3
bitangentWS = cross(normalWS,tangentWS) * (i.VFX_VARYING_TANGENT.w * faceMul);\n\t\t\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t\t\t
#else\n\t\t\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t\t\t normalWS = mul(n,tbn);\n\t\t\t\t\t
#endif\n\t\t\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t\t\t
surface.normalWS = normalWS;\n\t\t\t\t\t EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface),
i.VFX_VARYING_POSCS.xy, outNormalBuffer);\n\t\t\t\t\t #endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\toutMotionVector = encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t// We use depth prepass
for scene selection in the editor, this code allow to output the outline correctly\n\t\t\t\t\toutColor
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH ==
VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t//void\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH
undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\t//
We use depth prepass for scene selection in the editor, this code allow to
output the outline correctly\n\t\t\t\t\t\t\toutColor = float4(_ObjectId, _PassValue,
1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t//void\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined\n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t\n\t\t\t#pragma target 4.5\n\t\t\t#define
UNITY_MATERIAL_LIT\n\t\t\t#pragma multi_compile _ WRITE_NORMAL_BUFFER\n\t\t\t\n\t\t\tstruct
ps_input\n\t\t\t{\t\t\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\tfloat2 uv
: TEXCOORD0;\t\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV1\n\t\t\t float4 uv1
: COLOR2;\n\t\t\t #endif\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV2\n\t\t\t
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t#pragma multi_compile _ WRITE_NORMAL_BUFFER\n\t\t\t#pragma
multi_compile _ WRITE_MSAA_DEPTH\n\t\t\t\n\t\t\t#pragma target 4.5\n\t\t\t#define
UNITY_MATERIAL_LIT\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\t\t\n\t\t\t\tfloat4
pos : SV_POSITION;\n\t\t\t\tfloat2 uv : TEXCOORD0;\t\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV1\n\t\t\t
float4 uv1 : COLOR2;\n\t\t\t #endif\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV2\n\t\t\t
float4 uv2 : COLOR3;\n\t\t\t #endif\n\t\t\t #if VFX_SHADERGRAPH_HAS_UV3\n\t\t\t
float4 uv3 : COLOR4;\n\t\t\t #endif\n\t\t\t #if VFX_SHADERGRAPH_HAS_COLOR\n\t\t\t
float4 vertexColor : COLOR1;\n\t\t\t #endif\n\t\t\t\t#if USE_ALPHA_TEST

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\n\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t // Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst
uint diffusionProfileHash = 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS
= VFXGetPositionRWS(i);\n\t\t\t\tfloat4 posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs
posInput = GetPositionInput(posSS.xy, _ScreenSize.zw, posSS.z, posSS.w, posRWS,
tileIndex);\n\t\t\t\t\n\t\t\t\tfloat alpha;\n\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\n\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t //TODO: investigate why this is needed\n\t\t\t preLightData.coatPartLambdaV
= 0;\n\t\t\t preLightData.coatIblR = 0;\n\t\t\t preLightData.coatIblF
= 0;\n\t\t\t \n\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t}\n\t\t\t\n\t\t\tvoid
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t#define SHADERPASS
SHADERPASS_MOTION_VECTORS\n\t\t\t\t\t#else\n\t\t\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\tvoid VFXGetHDRPLitData(out SurfaceData
surfaceData, out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData
preLightData, VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData,
uint2 tileIndex)\n\t\t\t\t\t{\t\n\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t\t
// Loads diffusion profile\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha;\n\t\t\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\t\t\n\t\t\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\t\t\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t //TODO: investigate why this is needed\n\t\t\t\t\t
preLightData.coatPartLambdaV = 0;\n\t\t\t\t\t preLightData.coatIblR = 0;\n\t\t\t\t\t
preLightData.coatIblF = 0;\n\t\t\t\t\t \n\t\t\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvoid
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t{\n\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t}\n\t\t\t\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tvoid frag(ps_input i\n\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t,
bool frontFace : SV_IsFrontFace\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t, out float4 outMotionVector : SV_Target0\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target1\n\t\t\t\t#endif\n\t\t\t#else\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t, out float4 outColor :
SV_Target0\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t\t)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
normalWS = normalize(i.VFX_VARYING_NORMAL * faceMul);\n\t\t\t\t\t\t\tconst
VFXUVData uvData = GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
tangentWS = normalize(i.VFX_VARYING_TANGENT.xyz);\n\t\t\t\t\t\t\tfloat3 bitangentWS
= cross(normalWS,tangentWS) * (i.VFX_VARYING_TANGENT.w * faceMul);\n\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t\t\n\t\t\t float
alpha = OUTSG.;\n\t\t\t #else\n\t\t\t\tfloat alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t#if
HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\talpha *= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t#endif\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t
#ifndef VFX_SHADERGRAPH\n\t\t\t VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t
#else\n\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t normalWS = mul(n,tbn);\n\t\t\t
#endif\n\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t
\n\t\t\t surface.normalWS = normalWS;\n\t\t\t \n\t\t\t
EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface), i.VFX_VARYING_POSCS.xy,
outNormalBuffer);\n\t\t\t #endif\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t\t\t{\n\t\t\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t, bool frontFace
: SV_IsFrontFace\n\t\t\t\t\t#endif\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t// We need the depth color as SV_Target0 for
alpha to coverage\n\t\t\t\t\t\t, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t,
out float4 outMotionVector : SV_Target1\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target2\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t//
When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t\t, out
float4 outMotionVector : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t//
We need the depth color as SV_Target0 for alpha to coverage\n\t\t\t\t\t\t,
out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#elif
defined(WRITE_NORMAL_BUFFER)\n\t\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outColor
: SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3
normalWS = normalize(i.VFX_VARYING_NORMAL * faceMul);\n\t\t\t\t\t\t\t\t\tconst
VFXUVData uvData = GetUVData(i);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_TANGENT\n\t\t\t\t\t\t\t\t\tfloat3 tangentWS = normalize(i.VFX_VARYING_TANGENT.xyz);\n\t\t\t\t\t\t\t\t\tfloat3
bitangentWS = cross(normalWS,tangentWS) * (i.VFX_VARYING_TANGENT.w * faceMul);\n\t\t\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t\t\t
#else\n\t\t\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t\t\t normalWS = mul(n,tbn);\n\t\t\t\t\t
#endif\n\t\t\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t\t\t
surface.normalWS = normalWS;\n\t\t\t\t\t EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface),
i.VFX_VARYING_POSCS.xy, outNormalBuffer);\n\t\t\t\t\t #endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\toutMotionVector = encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t// We use depth prepass
for scene selection in the editor, this code allow to output the outline correctly\n\t\t\t\t\toutColor
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH ==
VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t//void\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH
undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\t//
We use depth prepass for scene selection in the editor, this code allow to
output the outline correctly\n\t\t\t\t\t\t\toutColor = float4(_ObjectId, _PassValue,
1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t//void\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined\n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
{ \"LightMode\"=\"GBuffer\" }\n\t\t\t\n\t\t Stencil\n\t\t {\n\t\t
WriteMask 6\n\t\t Ref 2\n\t\t Comp Always\n\t\t Pass Replace\n\t\t
}\n\n\t\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t\n\t\t\t#pragma

index: 11
- nameId: _DoubleSidedNormalMode
index: 16
- nameId: _TransparentDepthPrepassEnable
index: 65
- nameId: _TransparentDepthPostpassEnable
index: 65
processor: {fileID: -6465566751694194690, guid: 0f55f867ac9350f45864c8a19670b26b,
type: 3}
shaderSourceIndex: -1

index: 2
temporaryBuffers: []
values:
- nameId: uniform_b
- nameId: uniform_a
index: 61
params:
- nameId: bounds_center

index: 0
temporaryBuffers: []
values:
- nameId: uniform_b
- nameId: uniform_a
- nameId: uniform_c
- nameId: uniform_b
- nameId: uniform_d
- nameId: uniform_c
index: 39
params: []
processor: {fileID: 0}

index: 11
- nameId: _DoubleSidedNormalMode
index: 16
- nameId: _TransparentDepthPrepassEnable
index: 65
- nameId: _TransparentDepthPostpassEnable
index: 65
processor: {fileID: -6465566751694194690, guid: 0f55f867ac9350f45864c8a19670b26b,
type: 3}
shaderSourceIndex: -1

index: 3
temporaryBuffers: []
values:
- nameId: uniform_b
- nameId: uniform_a
index: 61
params:
- nameId: bounds_center

index: 1
temporaryBuffers: []
values:
- nameId: uniform_b
- nameId: uniform_a
- nameId: uniform_c
- nameId: uniform_b
- nameId: uniform_d
- nameId: uniform_c
index: 41
params: []
processor: {fileID: 0}

index: 11
- nameId: _DoubleSidedNormalMode
index: 16
- nameId: _TransparentDepthPrepassEnable
index: 65
- nameId: _TransparentDepthPostpassEnable
index: 65
processor: {fileID: -6465566751694194690, guid: 0f55f867ac9350f45864c8a19670b26b,
type: 3}
shaderSourceIndex: -1

99
Assets/Samples/MagicBook/VFX/JacobsLadder.vfx


sincosTheta *= sqrt(1.0f - cosPhi * cosPhi);\n \n direction = float3(sincosTheta,
cosPhi);\n position += direction * (rNorm * ArcSphere_sphere_radius) + ArcSphere_sphere_center;\n
\n}\nvoid SetAttribute_3278B229(inout float size, float Size) /*attribute:size
Composition:Overwrite Source:Slot Random:Off channels:X */\n{\n size = Size;\n}\n\n\r\n\r\n#if
HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
Composition:Overwrite Source:Slot Random:Off channels:X */\n{\n size = Size;\n}\n\n\r\n\r\n//
Due to a bug in HLSL compiler, disable spurious \"unitialized variable\" due
to mid function return statement\r\n#pragma warning(push)\r\n#pragma warning(disable
: 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

name: '[System 1]Output Particle Line'
source: "Shader \"Hidden/VFX/JacobsLadder/System 1/Output Particle Line\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tTags
{ \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\" \"RenderType\"=\"Transparent\"
}\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
}\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
SrcAlpha One \n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

1\n\t\t#define VFX_USE_ALPHA_CURRENT 1\n\t\t#define VFX_USE_ALIVE_CURRENT 1\n\t\t#define
VFX_COLORMAPPING_DEFAULT 1\n\t\t#define IS_TRANSPARENT_PARTICLE 1\n\t\t#define
VFX_BLENDMODE_ADD 1\n\t\t#define VFX_BYPASS_EXPOSURE 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_BLENDMODE_ADD 1\n\t\t#define VFX_BYPASS_EXPOSURE 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
float4 uniform_c;\n\t\t float3 uniform_b;\n\t\t float Color_e;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
float4 uniform_b;\n\t\t float3 uniform_a;\n\t\t float Color_e;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
samplerattributeMap_a;\n\t\tfloat4 attributeMap_a_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
samplerattributeMap_a;\n\t\tfloat4 attributeMap_a_TexelSize;\n\t\t\n\t\tTexture3D
attributeMap_b;\n\t\tSamplerState samplerattributeMap_b;\n\t\tfloat4 attributeMap_b_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

float2 builtInInterpolants : TEXCOORD0;\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\t#define
VFX_VARYING_PS_INPUTS ps_input\n\t\t\t#define VFX_VARYING_POSCS pos\n\t\t\t#define
VFX_VARYING_ALPHA builtInInterpolants.y\n\t\t\t#define VFX_VARYING_ALPHATHRESHOLD
builtInInterpolants.x\n\t\t\t\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
builtInInterpolants.x\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS and VFX_VARYING_POSCS
must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

= float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha = (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t{\n\t\t\t\t
float3 tmp_p = attributes.position + uniform_b;\n\t\t\t\t uint tmp_t = attributes.particleId
float3 tmp_p = attributes.position + uniform_a;\n\t\t\t\t uint tmp_t = attributes.particleId
float tmp_y = tmp_w / (float)100;\n\t\t\t\t float tmp_z = SampleCurve(uniform_c,tmp_y);\n\t\t\t\t
float tmp_y = tmp_w / (float)100;\n\t\t\t\t float tmp_z = SampleCurve(uniform_b,tmp_y);\n\t\t\t\t
float3 tmp_p = attributes.targetPosition + uniform_b;\n\t\t\t\t float tmp_s
float3 tmp_p = attributes.targetPosition + uniform_a;\n\t\t\t\t float tmp_s
/ (float)100;\n\t\t\t\t float tmp_bf = SampleCurve(uniform_c,tmp_be);\n\t\t\t\t
/ (float)100;\n\t\t\t\t float tmp_bf = SampleCurve(uniform_b,tmp_be);\n\t\t\t\t
float3 tmp_bg = float3(tmp_bf, tmp_bf, tmp_bf);\n\t\t\t\t AttributeFromMap_62C85D1D(
/*inout */attributes.targetPosition, GetVFXSampler(attributeMap_a, samplerattributeMap_a),
tmp_p, (float)0, float3(-0.5, -0.5, -0.5), tmp_bg);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t

defined (VFX_VARYING_UV)\n\t\t\t\t\t\to.VFX_VARYING_UV.xy = o.VFX_VARYING_UV.xy
* uvScale + uvBias;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if
defined(VFX_VARYING_POSWS)\n\t\t\t\t\t\to.VFX_VARYING_POSWS = TransformPositionVFXToWorld(vPos);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\treturn
o;\n\t\t\t}\n\t\t\t\n\t\t\t#include \"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\tfloat
alpha = VFXGetFragmentColor(i);\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\treturn
(float4)0;\n\t\t\t#else\n\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t#endif\n\t\t\t}\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t//
o;\n\t\t\t}\n\t\t\t\n\t\t\t#include \"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 0\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos

= float3(1, 1, 1);\n\t\t\t\t\t\tattributes.alpha = (float)1;\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\t//
Initialize built-in needed attributes\n\t\t\t\t\t\t#if HAS_STRIPS\n\t\t\t\t\t\tInitStripAttributes(index,
attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t{\n\t\t\t\t
float3 tmp_p = attributes.position + uniform_b;\n\t\t\t\t uint tmp_t = attributes.particleId
float3 tmp_p = attributes.position + uniform_a;\n\t\t\t\t uint tmp_t = attributes.particleId
float tmp_y = tmp_w / (float)100;\n\t\t\t\t float tmp_z = SampleCurve(uniform_c,tmp_y);\n\t\t\t\t
float tmp_y = tmp_w / (float)100;\n\t\t\t\t float tmp_z = SampleCurve(uniform_b,tmp_y);\n\t\t\t\t
float3 tmp_p = attributes.targetPosition + uniform_b;\n\t\t\t\t float tmp_s
float3 tmp_p = attributes.targetPosition + uniform_a;\n\t\t\t\t float tmp_s
/ (float)100;\n\t\t\t\t float tmp_bf = SampleCurve(uniform_c,tmp_be);\n\t\t\t\t
/ (float)100;\n\t\t\t\t float tmp_bf = SampleCurve(uniform_b,tmp_be);\n\t\t\t\t
float3 tmp_bg = float3(tmp_bf, tmp_bf, tmp_bf);\n\t\t\t\t AttributeFromMap_62C85D1D(
/*inout */attributes.targetPosition, GetVFXSampler(attributeMap_a, samplerattributeMap_a),
tmp_p, (float)0, float3(-0.5, -0.5, -0.5), tmp_bg);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t

index: 0
temporaryBuffers: []
values:
- nameId: uniform_b
- nameId: uniform_a
- nameId: uniform_c
- nameId: uniform_b
index: 40
- nameId: attributeMap_b
index: 40
params:
- nameId: sortPriority

351
Assets/Samples/MagicBook/VFX/Liquid.vfx


* RAND, 1.0f / 3.0f);\n \n float2 sincosTheta;\n sincos(theta, sincosTheta.x,
sincosTheta.y);\n sincosTheta *= sqrt(1.0f - cosPhi * cosPhi);\n \n
direction = float3(sincosTheta, cosPhi);\n position += direction * (rNorm
* ArcSphere_sphere_radius) + ArcSphere_sphere_center;\n \n}\n\n\r\n\r\n#if
HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
* ArcSphere_sphere_radius) + ArcSphere_sphere_center;\n \n}\n\n\r\n\r\n//
Due to a bug in HLSL compiler, disable spurious \"unitialized variable\" due
to mid function return statement\r\n#pragma warning(push)\r\n#pragma warning(disable
: 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

VFX_USE_SCALEY_CURRENT 1\n#define VFX_USE_SCALEX_CURRENT 1\n#define VFX_USE_SIZE_CURRENT
1\n#define VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float4x4 InvFieldTransform_a;\n float4x4 FieldTransform_a;\n float4x4
uniform_i;\n float4 plane_d;\n float3 Plane_position_d;\n float deltaTime_a;\n
float3 Plane_normal_d;\n float uniform_j;\n float3 Direction_e;\n
uniform_a;\n float4 plane_d;\n float3 Plane_position_d;\n float deltaTime_a;\n
float3 Plane_normal_d;\n float uniform_b;\n float3 Direction_e;\n
DistanceField_b;\nSamplerState samplerDistanceField_b;\nfloat4 DistanceField_b_TexelSize;\nAppendStructuredBuffer<uint>
DistanceField_b;\nSamplerState samplerDistanceField_b;\nfloat4 DistanceField_b_TexelSize;\n\nTexture3D
DistanceField_c;\nSamplerState samplerDistanceField_c;\nfloat4 DistanceField_c_TexelSize;\n\nAppendStructuredBuffer<uint>
eventListOut_a;\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT &&
!HAS_STRIPS)\r\n\r\nRWByteAddressBuffer attributeBuffer;\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint>
deadListOut;\r\n#endif\r\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\nRWStructuredBuffer<uint>

+= outsideDist - 0.5f;\n dir = normalize(float3(FieldTransform[0][3],FieldTransform[1][3],FieldTransform[2][3])
- position);\n }\n else\n {\n // compute normal\n dir
= SampleSDFDerivativesFast(DistanceField, coord, dist);\n if (dist >
0)\n dir = -dir;\n dir = normalize(mul(FieldTransform,float4(dir,0)));\n
0)\n dir = -dir;\n dir = normalize(mul(FieldTransform,float4(dir,0)).xyz);\n
}\n \n float distToSurface = abs(dist);\n \n float spdNormal =
dot(dir,velocity);\n float ratio = smoothstep(0.0,stickDistance * 2.0,abs(distToSurface));\n
float tgtSpeed = sign(distToSurface) * attractionSpeed * ratio;\n float

(float)0, (float)1, (float)0.100000001, deltaTime_a, (float)-1, tmp_bq, plane_d);\n\t\t\t}\n\t\t\t{\n\t\t\t
VelocityDirection_18D( /*inout */attributes.velocity, /*inout */attributes.direction,
Direction_e, (float)0.0399999991, (float)0.472381413);\n\t\t\t}\n\t\t\t{\n\t\t\t
float3 tmp_bi = mul(uniform_i, float4(attributes.position, 1.0)).xyz;\n\t\t\t
float3 tmp_bi = mul(uniform_a, float4(attributes.position, 1.0)).xyz;\n\t\t\t
float tmp_bq = tmp_bp - uniform_j;\n\t\t\t bool tmp_bs = tmp_bq < (float)0.100000001;\n\t\t\t
float tmp_bq = tmp_bp - uniform_b;\n\t\t\t bool tmp_bs = tmp_bq < (float)0.100000001;\n\t\t\t
int tmp_bv = tmp_bs ? (int)3 : (int)0;\n\t\t\t uint tmp_bw = (uint)tmp_bv;\n\t\t\t
attributes.eventCount = 0u;\n\t\t\t GPUEventOnDie(attributes.lifetime, attributes.age,
attributes.alive, /*inout */attributes.eventCount, tmp_bw, deltaTime_a);\n\t\t\t

* 0x8 + 0x7D00) << 2,asuint(attributes.position));\n\t\t\t\tattributeBuffer.Store3((index
* 0x4 + 0x46500) << 2,asuint(attributes.direction));\n\t\t\t\tattributeBuffer.Store3((index
* 0x8 + 0x7D04) << 2,asuint(attributes.velocity));\n\t\t\t\tattributeBuffer.Store((index
* 0x8 + 0x7D03) << 2,asuint(attributes.age));\n\t\t\t\tfor (uint i = 0; i <
eventCount_a; ++i) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
* 0x8 + 0x7D03) << 2,asuint(attributes.age));\n\t\t\t\tfor (uint ia = 0; ia
< eventCount_a; ++ia) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
* 0x8 + 0x7D07) << 2,uint(attributes.alive));\n\t\t\t\tfor (uint i = 0; i <
eventCount_a; ++i) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if USE_DEAD_LIST
* 0x8 + 0x7D07) << 2,uint(attributes.alive));\n\t\t\t\tfor (uint ia = 0; ia
< eventCount_a; ++ia) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if USE_DEAD_LIST
&& !VFX_USE_STRIPALIVE_CURRENT\r\n\t\t\t\tuint deadIndex = deadListOut.IncrementCounter();\r\n\t\t\t\tdeadListOut[deadIndex]
= index;\r\n#endif\r\n\t\t\t}\r\n\t\t}\r\n#if USE_DEAD_LIST && VFX_USE_STRIPALIVE_CURRENT\r\n
else if (attributes.stripAlive)\r\n {\r\n if (STRIP_DATA_X(attachedStripDataBuffer,

(float)0.100000001, deltaTime_a, (float)-1, tmp_bq, plane_d);\n\t\t}\n\t\t{\n\t\t
VelocityDirection_18D( /*inout */attributes.velocity, /*inout */attributes.direction,
Direction_e, (float)0.0399999991, (float)0.472381413);\n\t\t}\n\t\t{\n\t\t
float3 tmp_bi = mul(uniform_i, float4(attributes.position, 1.0)).xyz;\n\t\t
float3 tmp_bi = mul(uniform_a, float4(attributes.position, 1.0)).xyz;\n\t\t
float tmp_bq = tmp_bp - uniform_j;\n\t\t bool tmp_bs = tmp_bq < (float)0.100000001;\n\t\t
float tmp_bq = tmp_bp - uniform_b;\n\t\t bool tmp_bs = tmp_bq < (float)0.100000001;\n\t\t
int tmp_bv = tmp_bs ? (int)3 : (int)0;\n\t\t uint tmp_bw = (uint)tmp_bv;\n\t\t
attributes.eventCount = 0u;\n\t\t GPUEventOnDie(attributes.lifetime, attributes.age,
attributes.alive, /*inout */attributes.eventCount, tmp_bw, deltaTime_a);\n\t\t

* 0x4 + 0x46500) << 2,asuint(attributes.direction));\n\t\tattributeBuffer.Store3((index
* 0x8 + 0x7D04) << 2,asuint(attributes.velocity));\n\t\tattributeBuffer.Store((index
* 0x8 + 0x7D03) << 2,asuint(attributes.age));\n\t\tattributeBuffer.Store((index
* 0x8 + 0x7D07) << 2,uint(attributes.alive));\n\t\tfor (uint i = 0; i < eventCount_a;
++i) eventListOut_a.Append(index);\n\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
* 0x8 + 0x7D07) << 2,uint(attributes.alive));\n\t\tfor (uint ia = 0; ia < eventCount_a;
++ia) eventListOut_a.Append(index);\n\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
uint indirectIndex = indirectBuffer.IncrementCounter();\r\n\t\tindirectBuffer[indirectIndex]
= index;\r\n#endif\r\n#endif\r\n\t}\r\n}\r\n"
- compute: 0

\"RenderType\"=\"Opaque\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
\"RenderType\"=\"Opaque\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

1\n\t\t#define VFX_USE_PIVOTX_CURRENT 1\n\t\t#define VFX_USE_PIVOTY_CURRENT
1\n\t\t#define VFX_USE_PIVOTZ_CURRENT 1\n\t\t#define VFX_COLORMAPPING_DEFAULT
1\n\t\t#define IS_OPAQUE_PARTICLE 1\n\t\t#define USE_ALPHA_TEST 1\n\t\t#define
VFX_BYPASS_EXPOSURE 1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_BYPASS_EXPOSURE 1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_LOCAL_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
float4 Size_d;\n\t\t float3 Color_c;\n\t\t float Size_e;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float lifetime;\n\t\t float3 position;\n\t\t

axisZ;\n\t\t float angleX;\n\t\t float angleY;\n\t\t float angleZ;\n\t\t
float pivotX;\n\t\t float pivotY;\n\t\t float pivotZ;\n\t\t};\n\t\t\n\t\tstruct
SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D mainTexture;\n\t\tSamplerState
samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t//
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t#pragma target 4.5\n\t\t\t\n\t\t\tstruct
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4
uv : TEXCOORD0;\n\t\t\t\t#else\n\t\t\t\tfloat2 uv : TEXCOORD0;\t\n\t\t\t\t#endif\n\t\t\t\t#if
USE_ALPHA_TEST || USE_FLIPBOOK_INTERPOLATION || VFX_USE_ALPHA_CURRENT\n\t\t\t\t//
x: alpha threshold\n\t\t\t\t// y: frame blending factor\n\t\t\t\t// z: alpha\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
float3 builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if
USE_FLIPBOOK_MOTIONVECTORS\n\t\t\t\t// x: motion vectors scale X\n\t\t\t\t//
y: motion vectors scale Y\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION float2 builtInInterpolants2
: TEXCOORD2;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\tfloat4
cPosPrevious : TEXCOORD3;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD4;\n\t\t\t\t#endif\n\t\t\t
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t#pragma multi_compile _ WRITE_MSAA_DEPTH\n\t\t\t#pragma
target 4.5\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if
USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4 uv : TEXCOORD0;\n\t\t\t\t#else\n\t\t\t\tfloat2
uv : TEXCOORD0;\t\n\t\t\t\t#endif\n\t\t\t\t#if USE_ALPHA_TEST || USE_FLIPBOOK_INTERPOLATION
|| VFX_USE_ALPHA_CURRENT\n\t\t\t\t// x: alpha threshold\n\t\t\t\t// y: frame
blending factor\n\t\t\t\t// z: alpha\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION float3
builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS\n\t\t\t\t//
x: motion vectors scale X\n\t\t\t\t// y: motion vectors scale Y\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
float2 builtInInterpolants2 : TEXCOORD2;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\tfloat4 cPosPrevious :
TEXCOORD3;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD4;\n\t\t\t\t#endif\n\t\t\t
\n\t\t\t #if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t float3 posWS : TEXCOORD5;\n\t\t\t
#endif\n\t\t\t \n\t\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\t#define
VFX_VARYING_PS_INPUTS ps_input\n\t\t\t#define VFX_VARYING_POSCS pos\n\t\t\t#define

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

float3 velocity, inout float3 direction, float3 Direction, float Speed, float
DirectionBlend) /*composition:Add speedMode:Constant */\n{\n float speed
= Speed;\n direction = VFXSafeNormalize(lerp(direction, Direction, DirectionBlend));\n
velocity += direction * speed;\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout
uint particleIndex, uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
velocity += direction * speed;\n}\n\n\r\n\r\n// Due to a bug in HLSL compiler,
disable spurious \"unitialized variable\" due to mid function return statement\r\n#pragma
warning(push)\r\n#pragma warning(disable : 4000)\r\n#if HAS_STRIPS\r\nbool
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

float deltaTime_a;\n uint3 PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n
float3 position;\n float lifetime;\n float3 velocity;\n float age;\n
bool alive;\n};\n\nstruct SourceAttributes\n{\n};\n\nTexture3D DistanceField_a;\nSamplerState
samplerDistanceField_a;\nfloat4 DistanceField_a_TexelSize;\n\n\r\n\r\n#define
samplerDistanceField_a;\nfloat4 DistanceField_a_TexelSize;\n\nTexture3D DistanceField_b;\nSamplerState
samplerDistanceField_b;\nfloat4 DistanceField_b_TexelSize;\n\n\n\r\n\r\n#define
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer
attributeBuffer;\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint> deadListOut;\r\n#endif\r\n\r\n#if
VFX_HAS_INDIRECT_DRAW\r\nRWStructuredBuffer<uint> indirectBuffer;\r\n#endif\r\n\r\n#if

name: '[System 2]Surface Bubbles'
source: "Shader \"Hidden/VFX/Liquid/System 2/Surface Bubbles\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Geometry+450\" \"IgnoreProjector\"=\"False\"
\"RenderType\"=\"Opaque\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
\"RenderType\"=\"Opaque\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
LEqual\n\t\tZWrite On\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

1\n\t\t#define VFX_USE_SCALEY_CURRENT 1\n\t\t#define VFX_USE_SCALEZ_CURRENT
1\n\t\t#define VFX_COLORMAPPING_DEFAULT 1\n\t\t#define IS_OPAQUE_PARTICLE 1\n\t\t#define
USE_ALPHA_TEST 1\n\t\t#define VFX_BYPASS_EXPOSURE 1\n\t\t#define VFX_PRIMITIVE_QUAD
1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_LOCAL_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
float4 Size_a;\n\t\t float3 Up_b;\n\t\t float Size_d;\n\t\t float3
Color_c;\n\t\t uint PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct Attributes\n\t\t{\n\t\t

angleX;\n\t\t float angleY;\n\t\t float angleZ;\n\t\t float pivotX;\n\t\t
float pivotY;\n\t\t float pivotZ;\n\t\t float scaleX;\n\t\t float
scaleY;\n\t\t float scaleZ;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t//
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t#pragma target 4.5\n\t\t\t\n\t\t\tstruct
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4
uv : TEXCOORD0;\n\t\t\t\t#else\n\t\t\t\tfloat2 uv : TEXCOORD0;\t\n\t\t\t\t#endif\n\t\t\t\t#if
USE_ALPHA_TEST || USE_FLIPBOOK_INTERPOLATION || VFX_USE_ALPHA_CURRENT\n\t\t\t\t//
x: alpha threshold\n\t\t\t\t// y: frame blending factor\n\t\t\t\t// z: alpha\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
float3 builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if
USE_FLIPBOOK_MOTIONVECTORS\n\t\t\t\t// x: motion vectors scale X\n\t\t\t\t//
y: motion vectors scale Y\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION float2 builtInInterpolants2
: TEXCOORD2;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\tfloat4
cPosPrevious : TEXCOORD3;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD4;\n\t\t\t\t#endif\n\t\t\t
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t#pragma multi_compile _ WRITE_MSAA_DEPTH\n\t\t\t#pragma
target 4.5\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if
USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4 uv : TEXCOORD0;\n\t\t\t\t#else\n\t\t\t\tfloat2
uv : TEXCOORD0;\t\n\t\t\t\t#endif\n\t\t\t\t#if USE_ALPHA_TEST || USE_FLIPBOOK_INTERPOLATION
|| VFX_USE_ALPHA_CURRENT\n\t\t\t\t// x: alpha threshold\n\t\t\t\t// y: frame
blending factor\n\t\t\t\t// z: alpha\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION float3
builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS\n\t\t\t\t//
x: motion vectors scale X\n\t\t\t\t// y: motion vectors scale Y\n\t\t\t\tVFX_OPTIONAL_INTERPOLATION
float2 builtInInterpolants2 : TEXCOORD2;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\tfloat4 cPosPrevious :
TEXCOORD3;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD4;\n\t\t\t\t#endif\n\t\t\t
\n\t\t\t #if VFX_NEEDS_POSWS_INTERPOLATOR\n\t\t\t float3 posWS : TEXCOORD5;\n\t\t\t
#endif\n\t\t\t \n\t\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\t#define
VFX_VARYING_PS_INPUTS ps_input\n\t\t\t#define VFX_VARYING_POSCS pos\n\t\t\t#define

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

index: 56
- nameId: Direction_e
index: 2
- nameId: uniform_i
- nameId: uniform_a
- nameId: uniform_j
- nameId: uniform_b
index: 77
- nameId: DistanceField_c
index: 77
params: []
processor: {fileID: 0}

- nameId: deltaTime_a
index: 74
- nameId: DistanceField_a
index: 77
- nameId: DistanceField_b
index: 77
params: []
processor: {fileID: 0}

762
Assets/Samples/MagicBook/VFX/Smoke.vfx
文件差异内容过多而无法显示
查看文件

353
Assets/Samples/MagicBook/VFX/Trails.vfx


m_UICollapsed: 0
m_UISuperCollapsed: 0
m_InputSlots:
- {fileID: 8926484042661614753}
- {fileID: 8926484042661614856}
- {fileID: 114158099937248418}
m_OutputSlots: []
m_Label: Trail head

inout uint seed, float A, float B) /*attribute:size Composition:Overwrite Source:Slot
Random:Uniform channels:XYZ */\n{\n size = lerp(A,B,RAND);\n}\nvoid SetAttribute_F01429A3(inout
float lifetime, inout uint seed, float A, float B) /*attribute:lifetime Composition:Overwrite
Source:Slot Random:Uniform channels:XYZ */\n{\n lifetime = lerp(A,B,RAND);\n}\n\n\r\n\r\n#if
HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
Source:Slot Random:Uniform channels:XYZ */\n{\n lifetime = lerp(A,B,RAND);\n}\n\n\r\n\r\n//
Due to a bug in HLSL compiler, disable spurious \"unitialized variable\" due
to mid function return statement\r\n#pragma warning(push)\r\n#pragma warning(disable
: 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

1\n#define VFX_USE_RATECOUNT_A_CURRENT 1\n#define VFX_USE_EVENTCOUNT_CURRENT
1\n#define VFX_USE_ALIVE_CURRENT 1\n#define VFX_USE_AGE_CURRENT 1\n#define
VFX_USE_STRIPALIVE_CURRENT 1\n#define VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float deltaTime_a;\n float uniform_c;\n float uniform_d;\n uint PADDING_0;\nCBUFFER_END\n\nstruct
float deltaTime_a;\n float uniform_a;\n float uniform_b;\n uint PADDING_0;\nCBUFFER_END\n\nstruct
Attributes\n{\n uint particleId;\n float3 position;\n float3 velocity;\n
float lifetime;\n float rateCount_a;\n uint eventCount;\n bool alive;\n
float age;\n bool stripAlive;\n};\n\nstruct SourceAttributes\n{\n};\n\nAppendStructuredBuffer<uint>

float tmp_bh = tmp_bd[0];\n\t\t\t float tmp_bi = tmp_bg + tmp_bh;\n\t\t\t
float3 tmp_bj = float3(tmp_bi, tmp_bi, tmp_bi);\n\t\t\t float3 tmp_bk =
float3(0, 1, 0) * tmp_bj;\n\t\t\t float3 tmp_bl = attributes.position -
tmp_bk;\n\t\t\t uint tmp_bn = attributes.particleId ^ asuint(uniform_d);\n\t\t\t
tmp_bk;\n\t\t\t uint tmp_bn = attributes.particleId ^ asuint(uniform_b);\n\t\t\t
uniform_c * tmp_bv;\n\t\t\t float tmp_bz = tmp_bo * (float)0.400000036;\n\t\t\t
uniform_a * tmp_bv;\n\t\t\t float tmp_bz = tmp_bo * (float)0.400000036;\n\t\t\t
float tmp_ca = (float)0.800000012 + tmp_bz;\n\t\t\t float tmp_cb = tmp_bw
* tmp_ca;\n\t\t\t float tmp_cc = cos(tmp_cb);\n\t\t\t float3 tmp_cd =
float3(tmp_cc, tmp_cc, tmp_cc);\n\t\t\t float3 tmp_ce = tmp_bl * tmp_cd;\n\t\t\t

* 0x8 + 0x100) << 2,asuint(attributes.position));\n\t\t\t\tattributeBuffer.Store((index
* 0x2 + 0x380) << 2,asuint(attributes.rateCount_a));\n\t\t\t\tattributeBuffer.Store((index
* 0x8 + 0x104) << 2,asuint(attributes.age));\n\t\t\t\tattributeBuffer.Store((index
* 0x2 + 0x381) << 2,uint(attributes.stripAlive));\n\t\t\t\tfor (uint i = 0;
i < eventCount_a; ++i) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
* 0x2 + 0x381) << 2,uint(attributes.stripAlive));\n\t\t\t\tfor (uint ia = 0;
ia < eventCount_a; ++ia) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
* 0x8 + 0x103) << 2,uint(attributes.alive));\n\t\t\t\tfor (uint i = 0; i <
eventCount_a; ++i) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if USE_DEAD_LIST
* 0x8 + 0x103) << 2,uint(attributes.alive));\n\t\t\t\tfor (uint ia = 0; ia
< eventCount_a; ++ia) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if USE_DEAD_LIST
&& !VFX_USE_STRIPALIVE_CURRENT\r\n\t\t\t\tuint deadIndex = deadListOut.IncrementCounter();\r\n\t\t\t\tdeadListOut[deadIndex]
= index;\r\n#endif\r\n\t\t\t}\r\n\t\t}\r\n#if USE_DEAD_LIST && VFX_USE_STRIPALIVE_CURRENT\r\n
else if (attributes.stripAlive)\r\n {\r\n if (STRIP_DATA_X(attachedStripDataBuffer,

float tmp_bh = tmp_bd[0];\n\t\t float tmp_bi = tmp_bg + tmp_bh;\n\t\t
float3 tmp_bj = float3(tmp_bi, tmp_bi, tmp_bi);\n\t\t float3 tmp_bk = float3(0,
1, 0) * tmp_bj;\n\t\t float3 tmp_bl = attributes.position - tmp_bk;\n\t\t
uint tmp_bn = attributes.particleId ^ asuint(uniform_d);\n\t\t float tmp_bo
uint tmp_bn = attributes.particleId ^ asuint(uniform_b);\n\t\t float tmp_bo
float tmp_bv = (float)tmp_bu;\n\t\t float tmp_bw = uniform_c * tmp_bv;\n\t\t
float tmp_bv = (float)tmp_bu;\n\t\t float tmp_bw = uniform_a * tmp_bv;\n\t\t
float tmp_bz = tmp_bo * (float)0.400000036;\n\t\t float tmp_ca = (float)0.800000012
+ tmp_bz;\n\t\t float tmp_cb = tmp_bw * tmp_ca;\n\t\t float tmp_cc =
cos(tmp_cb);\n\t\t float3 tmp_cd = float3(tmp_cc, tmp_cc, tmp_cc);\n\t\t

* 0x2 + 0x380) << 2,asuint(attributes.rateCount_a));\n\t\tattributeBuffer.Store((index
* 0x8 + 0x103) << 2,uint(attributes.alive));\n\t\tattributeBuffer.Store((index
* 0x8 + 0x104) << 2,asuint(attributes.age));\n\t\tattributeBuffer.Store((index
* 0x2 + 0x381) << 2,uint(attributes.stripAlive));\n\t\tfor (uint i = 0; i <
eventCount_a; ++i) eventListOut_a.Append(index);\n\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
* 0x2 + 0x381) << 2,uint(attributes.stripAlive));\n\t\tfor (uint ia = 0; ia
< eventCount_a; ++ia) eventListOut_a.Append(index);\n\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
uint indirectIndex = indirectBuffer.IncrementCounter();\r\n\t\tindirectBuffer[indirectIndex]
= index;\r\n#endif\r\n#endif\r\n\t}\r\n}\r\n"
- compute: 0

\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
SrcAlpha One \n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

1\n\t\t#define VFX_USE_SCALEZ_CURRENT 1\n\t\t#define VFX_USE_AGE_CURRENT 1\n\t\t#define
VFX_COLORMAPPING_DEFAULT 1\n\t\t#define IS_TRANSPARENT_PARTICLE 1\n\t\t#define
USE_SOFT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_ADD 1\n\t\t#define VFX_BYPASS_EXPOSURE
1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_LOCAL_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
float4 Size_c;\n\t\t float gradient_d;\n\t\t uint3 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float3 position;\n\t\t float size;\n\t\t float

float pivotY;\n\t\t float pivotZ;\n\t\t float scaleX;\n\t\t float
scaleY;\n\t\t float scaleZ;\n\t\t float age;\n\t\t};\n\t\t\n\t\tstruct
SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D mainTexture;\n\t\tSamplerState
samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

Composition:Overwrite Source:Source Random:Off channels:XYZ */\n{\n size
= Value;\n}\nvoid SetAttribute_F0142CB9(inout float lifetime, float Lifetime)
/*attribute:lifetime Composition:Overwrite Source:Slot Random:Off channels:XYZ
*/\n{\n lifetime = Lifetime;\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout
uint particleIndex, uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
*/\n{\n lifetime = Lifetime;\n}\n\n\r\n\r\n// Due to a bug in HLSL compiler,
disable spurious \"unitialized variable\" due to mid function return statement\r\n#pragma
warning(push)\r\n#pragma warning(disable : 4000)\r\n#if HAS_STRIPS\r\nbool
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

name: '[System 2]Trail body'
source: "Shader \"Hidden/VFX/Trails/System 2/Trail body\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\"
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
SrcAlpha One \n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

STRIP_COUNT 60u\n\t\t#define PARTICLE_PER_STRIP_COUNT 1000u\n\t\t#define VFX_COLORMAPPING_DEFAULT
1\n\t\t#define IS_TRANSPARENT_PARTICLE 1\n\t\t#define USE_SOFT_PARTICLE 1\n\t\t#define
VFX_BLENDMODE_ADD 1\n\t\t#define VFX_BYPASS_EXPOSURE 1\n\t\t#define HAS_STRIPS
1\n\t\t#define VFX_STRIPS_UV_STRECHED 1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
1\n\t\t#define VFX_STRIPS_UV_STRECHED 1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_LOCAL_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
float4 Size_b;\n\t\t float gradient_c;\n\t\t uint3 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float3 position;\n\t\t float size;\n\t\t float

float pivotZ;\n\t\t float age;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

values:
- nameId: deltaTime_a
index: 11
- nameId: uniform_c
- nameId: uniform_a
- nameId: uniform_d
- nameId: uniform_b
index: 2
params: []
processor: {fileID: 0}

m_UICollapsed: 0
m_UISuperCollapsed: 0
m_InputSlots:
- {fileID: 8926484042661614752}
- {fileID: 8926484042661614857}
- {fileID: 8926484042661614578}
m_OutputSlots: []
m_Label: Trail body

attributes: []
m_Direction: 1
m_LinkedSlots: []
--- !u!114 &8926484042661614752
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Parent: {fileID: 0}
m_Children: []
m_UIPosition: {x: 0, y: 0}
m_UICollapsed: 1
m_UISuperCollapsed: 0
m_MasterSlot: {fileID: 8926484042661614752}
m_MasterData:
m_Owner: {fileID: 8926484042661614577}
m_Value:
m_Type:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
m_SerializableObject: 2
m_Space: 2147483647
m_Property:
name: softParticlesFadeDistance
m_serializedType:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
attributes:
- m_Type: 1
m_Min: 0.001
m_Max: Infinity
m_Tooltip:
m_Regex:
m_RegexMaxLength: 0
m_Direction: 0
m_LinkedSlots: []
--- !u!114 &8926484042661614753
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Parent: {fileID: 0}
m_Children: []
m_UIPosition: {x: 0, y: 0}
m_UICollapsed: 1
m_UISuperCollapsed: 0
m_MasterSlot: {fileID: 8926484042661614753}
m_MasterData:
m_Owner: {fileID: 114063133802684794}
m_Value:
m_Type:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
m_SerializableObject: 2
m_Space: 2147483647
m_Property:
name: softParticlesFadeDistance
m_serializedType:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
attributes:
- m_Type: 1
m_Min: 0.001
m_Max: Infinity
m_Tooltip:
m_Regex:
m_RegexMaxLength: 0
m_Direction: 0
m_LinkedSlots: []
--- !u!114 &8926484042661614759
MonoBehaviour:
m_ObjectHideFlags: 0

m_Direction: 1
m_LinkedSlots:
- {fileID: 8926484042661614850}
--- !u!114 &8926484042661614856
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Parent: {fileID: 0}
m_Children: []
m_UIPosition: {x: 0, y: 0}
m_UICollapsed: 1
m_UISuperCollapsed: 0
m_MasterSlot: {fileID: 8926484042661614856}
m_MasterData:
m_Owner: {fileID: 114063133802684794}
m_Value:
m_Type:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
m_SerializableObject: 2
m_Space: 2147483647
m_Property:
name: softParticleFadeDistance
m_serializedType:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
attributes:
- m_Type: 1
m_Min: 0.001
m_Max: Infinity
m_Tooltip:
m_Regex:
m_RegexMaxLength: 0
m_Direction: 0
m_LinkedSlots: []
--- !u!114 &8926484042661614857
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Parent: {fileID: 0}
m_Children: []
m_UIPosition: {x: 0, y: 0}
m_UICollapsed: 1
m_UISuperCollapsed: 0
m_MasterSlot: {fileID: 8926484042661614857}
m_MasterData:
m_Owner: {fileID: 8926484042661614577}
m_Value:
m_Type:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
m_SerializableObject: 2
m_Space: 2147483647
m_Property:
name: softParticleFadeDistance
m_serializedType:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
attributes:
- m_Type: 1
m_Min: 0.001
m_Max: Infinity
m_Tooltip:
m_Regex:
m_RegexMaxLength: 0
m_Direction: 0
m_LinkedSlots: []

277
Assets/Samples/MorphingFace/MorphingFace.vfx


uint particleId;\n float3 color;\n float angleX;\n uint seed;\n
float angleZ;\n float scaleY;\n float scaleX;\n float scaleZ;\n};\n\nstruct
SourceAttributes\n{\n};\n\nTexture2D attributeMap_a;\nSamplerState samplerattributeMap_a;\nfloat4
attributeMap_a_TexelSize;\nTexture2D attributeMap_b;\nSamplerState samplerattributeMap_b;\nfloat4
attributeMap_b_TexelSize;\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT
attributeMap_a_TexelSize;\n\nTexture2D attributeMap_b;\nSamplerState samplerattributeMap_b;\nfloat4
attributeMap_b_TexelSize;\n\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT
&& !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer attributeBuffer;\r\nByteAddressBuffer
sourceAttributeBuffer;\r\n\r\nCBUFFER_START(initParams)\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
uint nbSpawned;\t\t\t\t\t// Numbers of particle spawned\r\n uint spawnIndex;\t\t\t\t//

uint Seed) /*attribute:scale Composition:Overwrite AlphaComposition:Overwrite
SampleMode:RandomConstantPerParticle Mode:PerComponent ColorMode:ColorAndAlpha
channels:Y */\n{\n float t = FIXED_RAND(Seed);\n float value = 0.0f;\n
value = SampleCurve(Scale, t);\n scaleY = value.x;\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
value = SampleCurve(Scale, t);\n scaleY = value.x;\n}\n\n\r\n\r\n// Due
to a bug in HLSL compiler, disable spurious \"unitialized variable\" due to
mid function return statement\r\n#pragma warning(push)\r\n#pragma warning(disable
: 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

name: '[System 1]Output Particle Lit Cube'
source: "Shader \"Hidden/VFX/MorphingFace/System 1/Output Particle Lit Cube\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Back\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Geometry+0\" \"IgnoreProjector\"=\"False\"
\"RenderType\"=\"Opaque\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
\"RenderType\"=\"Opaque\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
LEqual\n\t\tZWrite On\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

VFX_COLORMAPPING_DEFAULT 1\n\t\t#define IS_OPAQUE_PARTICLE 1\n\t\t#define USE_MOTION_VECTORS_PASS
1\n\t\t#define USE_CAST_SHADOWS_PASS 1\n\t\t#define HDRP_LIT 1\n\t\t#define
HDRP_MATERIAL_TYPE_STANDARD 1\n\t\t#define HDRP_USE_BASE_COLOR 1\n\t\t#define
IS_OPAQUE_NOT_SIMPLE_LIT_PARTICLE 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
IS_OPAQUE_NOT_SIMPLE_LIT_PARTICLE 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
float uniform_b;\n\t\t float currentFrameIndex;\n\t\t uint2 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
float uniform_a;\n\t\t float currentFrameIndex;\n\t\t uint2 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float3 position;\n\t\t float3 color;\n\t\t
float angleX;\n\t\t float angleZ;\n\t\t float scaleY;\n\t\t float
alpha;\n\t\t bool alive;\n\t\t float3 axisX;\n\t\t float3 axisY;\n\t\t

builtInInterpolants.y\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#undef VFX_USE_RIM_LIGHT\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if
!(defined(VFX_VARYING_PS_INPUTS) && defined(VFX_VARYING_POSCS))\n\t\t\t#error
VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
SetAttribute_D5151640(inout float scaleX, inout float scaleZ, float2 Scale)
/*attribute:scale Composition:Overwrite Source:Slot Random:Off channels:XZ

tmp_bi, tmp_bi);\n\t\t\t\t SetAttribute_545F0ED( /*inout */attributes.color,
tmp_bj);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t SetAttribute_545F0ED( /*inout */attributes.color,
float3(0.447058797, 0.692561686, 1));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t float
tmp_x = attributes.position[1];\n\t\t\t\t float tmp_y = tmp_x - uniform_b;\n\t\t\t\t
tmp_x = attributes.position[1];\n\t\t\t\t float tmp_y = tmp_x - uniform_a;\n\t\t\t\t
float tmp_z = abs(tmp_y);\n\t\t\t\t float tmp_bb = tmp_z - (float)1;\n\t\t\t\t
float tmp_bd = tmp_bb / (float)6;\n\t\t\t\t float tmp_bf = max(tmp_bd, (float)0);\n\t\t\t\t
float tmp_bg = min(tmp_bf, (float)1);\n\t\t\t\t float tmp_bh = (float)2

SetAttribute_501D4123( /*inout */attributes.angleX, tmp_bn);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
float tmp_x = attributes.position[1];\n\t\t\t\t float tmp_y = tmp_x - uniform_b;\n\t\t\t\t
float tmp_x = attributes.position[1];\n\t\t\t\t float tmp_y = tmp_x - uniform_a;\n\t\t\t\t
float tmp_z = abs(tmp_y);\n\t\t\t\t float tmp_bb = tmp_z - (float)1;\n\t\t\t\t
float tmp_bd = tmp_bb / (float)6;\n\t\t\t\t float tmp_bf = max(tmp_bd, (float)0);\n\t\t\t\t
float tmp_bg = min(tmp_bf, (float)1);\n\t\t\t\t float tmp_bh = (float)2

SetAttribute_501D4121( /*inout */attributes.angleZ, tmp_bn);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t\t float tmp_ba = tmp_z - uniform_b;\n\t\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t\t float tmp_ba = tmp_z - uniform_a;\n\t\t\t\t
float tmp_bb = abs(tmp_ba);\n\t\t\t\t float tmp_bc = tmp_bb - (float)1;\n\t\t\t\t
float tmp_be = tmp_bc / (float)6;\n\t\t\t\t float tmp_bg = max(tmp_be, (float)0);\n\t\t\t\t
float tmp_bh = min(tmp_bg, (float)1);\n\t\t\t\t float tmp_bi = (float)2

float tmp_bo = min(tmp_bn, (float)1);\n\t\t\t\t SetAttribute_18B2FD0( /*inout
*/attributes.color, float3(0.303435922, 0.396226406, 0.274741888), tmp_bo);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t\t float tmp_ba = tmp_z - uniform_b;\n\t\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t\t float tmp_ba = tmp_z - uniform_a;\n\t\t\t\t
float tmp_bb = abs(tmp_ba);\n\t\t\t\t float tmp_bc = tmp_bb - (float)1;\n\t\t\t\t
float tmp_be = tmp_bc / (float)6;\n\t\t\t\t float tmp_bg = max(tmp_be, (float)0);\n\t\t\t\t
float tmp_bh = min(tmp_bg, (float)1);\n\t\t\t\t float tmp_bi = (float)2

* float2(-i.VFX_VARYING_OFFSETS.z,1);\n\t\t\t\telse if (i.VFX_VARYING_FACEID
== 1)\n\t\t\t\t\tuv = i.VFX_VARYING_OFFSETS.xz * float2(i.VFX_VARYING_OFFSETS.y,1);\n\t\t\t\telse\n\t\t\t\t\tuv
= i.VFX_VARYING_OFFSETS.zy * float2(i.VFX_VARYING_OFFSETS.x,1);\n\t\t\t\treturn
uv * 0.5f + 0.5f;\n\t\t\t#else\n\t\t\t\treturn 0.0f;\n\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_Target0\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
uv * 0.5f + 0.5f;\n\t\t\t#else\n\t\t\t\treturn 0.0f;\n\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 0\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t//
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t//
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t#pragma target 4.5\n\t\t\t\n\t\t\tstruct
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if USE_ALPHA_TEST
|| VFX_USE_ALPHA_CURRENT\n\t\t\t\t// x: alpha\n\t\t\t\t// y: alpha threshold\n\t\t\t\tnointerpolation
float2 builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\tfloat4 cPosPrevious : TEXCOORD2;\n\t\t\t\tfloat4
cPosNonJiterred : TEXCOORD3;\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\t#define
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t#pragma multi_compile _ WRITE_MSAA_DEPTH\n\t\t\t#pragma
target 4.5\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if
USE_ALPHA_TEST || VFX_USE_ALPHA_CURRENT\n\t\t\t\t// x: alpha\n\t\t\t\t// y:
alpha threshold\n\t\t\t\tnointerpolation float2 builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\tfloat4 cPosPrevious :
TEXCOORD2;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD3;\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\t#define
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if
!(defined(VFX_VARYING_PS_INPUTS) && defined(VFX_VARYING_POSCS))\n\t\t\t#error
VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
SetAttribute_D5151640(inout float scaleX, inout float scaleZ, float2 Scale)
/*attribute:scale Composition:Overwrite Source:Slot Random:Off channels:XZ

tmp_bi, tmp_bi);\n\t\t\t\t SetAttribute_545F0ED( /*inout */attributes.color,
tmp_bj);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t SetAttribute_545F0ED( /*inout */attributes.color,
float3(0.447058797, 0.692561686, 1));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t float
tmp_x = attributes.position[1];\n\t\t\t\t float tmp_y = tmp_x - uniform_b;\n\t\t\t\t
tmp_x = attributes.position[1];\n\t\t\t\t float tmp_y = tmp_x - uniform_a;\n\t\t\t\t
float tmp_z = abs(tmp_y);\n\t\t\t\t float tmp_bb = tmp_z - (float)1;\n\t\t\t\t
float tmp_bd = tmp_bb / (float)6;\n\t\t\t\t float tmp_bf = max(tmp_bd, (float)0);\n\t\t\t\t
float tmp_bg = min(tmp_bf, (float)1);\n\t\t\t\t float tmp_bh = (float)2

SetAttribute_501D4123( /*inout */attributes.angleX, tmp_bn);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
float tmp_x = attributes.position[1];\n\t\t\t\t float tmp_y = tmp_x - uniform_b;\n\t\t\t\t
float tmp_x = attributes.position[1];\n\t\t\t\t float tmp_y = tmp_x - uniform_a;\n\t\t\t\t
float tmp_z = abs(tmp_y);\n\t\t\t\t float tmp_bb = tmp_z - (float)1;\n\t\t\t\t
float tmp_bd = tmp_bb / (float)6;\n\t\t\t\t float tmp_bf = max(tmp_bd, (float)0);\n\t\t\t\t
float tmp_bg = min(tmp_bf, (float)1);\n\t\t\t\t float tmp_bh = (float)2

SetAttribute_501D4121( /*inout */attributes.angleZ, tmp_bn);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t\t float tmp_ba = tmp_z - uniform_b;\n\t\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t\t float tmp_ba = tmp_z - uniform_a;\n\t\t\t\t
float tmp_bb = abs(tmp_ba);\n\t\t\t\t float tmp_bc = tmp_bb - (float)1;\n\t\t\t\t
float tmp_be = tmp_bc / (float)6;\n\t\t\t\t float tmp_bg = max(tmp_be, (float)0);\n\t\t\t\t
float tmp_bh = min(tmp_bg, (float)1);\n\t\t\t\t float tmp_bi = (float)2

float tmp_bo = min(tmp_bn, (float)1);\n\t\t\t\t SetAttribute_18B2FD0( /*inout
*/attributes.color, float3(0.303435922, 0.396226406, 0.274741888), tmp_bo);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t\t float tmp_ba = tmp_z - uniform_b;\n\t\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t\t float tmp_ba = tmp_z - uniform_a;\n\t\t\t\t
float tmp_bb = abs(tmp_ba);\n\t\t\t\t float tmp_bc = tmp_bb - (float)1;\n\t\t\t\t
float tmp_be = tmp_bc / (float)6;\n\t\t\t\t float tmp_bg = max(tmp_be, (float)0);\n\t\t\t\t
float tmp_bh = min(tmp_bg, (float)1);\n\t\t\t\t float tmp_bi = (float)2

* float2(-i.VFX_VARYING_OFFSETS.z,1);\n\t\t\t\telse if (i.VFX_VARYING_FACEID
== 1)\n\t\t\t\t\tuv = i.VFX_VARYING_OFFSETS.xz * float2(i.VFX_VARYING_OFFSETS.y,1);\n\t\t\t\telse\n\t\t\t\t\tuv
= i.VFX_VARYING_OFFSETS.zy * float2(i.VFX_VARYING_OFFSETS.x,1);\n\t\t\t\treturn
uv * 0.5f + 0.5f;\n\t\t\t#else\n\t\t\t\treturn 0.0f;\n\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_Target0\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
uv * 0.5f + 0.5f;\n\t\t\t#else\n\t\t\t\treturn 0.0f;\n\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 0\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#pragma target 4.5\n\t\t\t\n\t\t\tstruct
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if USE_ALPHA_TEST
|| VFX_USE_ALPHA_CURRENT\n\t\t\t\t// x: alpha\n\t\t\t\t// y: alpha threshold\n\t\t\t\tnointerpolation
float2 builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\tfloat4 cPosPrevious : TEXCOORD2;\n\t\t\t\tfloat4
cPosNonJiterred : TEXCOORD3;\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\t#define
VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#pragma multi_compile _ WRITE_MSAA_DEPTH\n\t\t\t#pragma
target 4.5\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if
USE_ALPHA_TEST || VFX_USE_ALPHA_CURRENT\n\t\t\t\t// x: alpha\n\t\t\t\t// y:
alpha threshold\n\t\t\t\tnointerpolation float2 builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\tfloat4 cPosPrevious :
TEXCOORD2;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD3;\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\t#define
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if
!(defined(VFX_VARYING_PS_INPUTS) && defined(VFX_VARYING_POSCS))\n\t\t\t#error
VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
SetAttribute_D5151640(inout float scaleX, inout float scaleZ, float2 Scale)
/*attribute:scale Composition:Overwrite Source:Slot Random:Off channels:XZ

tmp_bi, tmp_bi);\n\t\t\t\t SetAttribute_545F0ED( /*inout */attributes.color,
tmp_bj);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t SetAttribute_545F0ED( /*inout */attributes.color,
float3(0.447058797, 0.692561686, 1));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t float
tmp_x = attributes.position[1];\n\t\t\t\t float tmp_y = tmp_x - uniform_b;\n\t\t\t\t
tmp_x = attributes.position[1];\n\t\t\t\t float tmp_y = tmp_x - uniform_a;\n\t\t\t\t
float tmp_z = abs(tmp_y);\n\t\t\t\t float tmp_bb = tmp_z - (float)1;\n\t\t\t\t
float tmp_bd = tmp_bb / (float)6;\n\t\t\t\t float tmp_bf = max(tmp_bd, (float)0);\n\t\t\t\t
float tmp_bg = min(tmp_bf, (float)1);\n\t\t\t\t float tmp_bh = (float)2

SetAttribute_501D4123( /*inout */attributes.angleX, tmp_bn);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
float tmp_x = attributes.position[1];\n\t\t\t\t float tmp_y = tmp_x - uniform_b;\n\t\t\t\t
float tmp_x = attributes.position[1];\n\t\t\t\t float tmp_y = tmp_x - uniform_a;\n\t\t\t\t
float tmp_z = abs(tmp_y);\n\t\t\t\t float tmp_bb = tmp_z - (float)1;\n\t\t\t\t
float tmp_bd = tmp_bb / (float)6;\n\t\t\t\t float tmp_bf = max(tmp_bd, (float)0);\n\t\t\t\t
float tmp_bg = min(tmp_bf, (float)1);\n\t\t\t\t float tmp_bh = (float)2

SetAttribute_501D4121( /*inout */attributes.angleZ, tmp_bn);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t\t float tmp_ba = tmp_z - uniform_b;\n\t\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t\t float tmp_ba = tmp_z - uniform_a;\n\t\t\t\t
float tmp_bb = abs(tmp_ba);\n\t\t\t\t float tmp_bc = tmp_bb - (float)1;\n\t\t\t\t
float tmp_be = tmp_bc / (float)6;\n\t\t\t\t float tmp_bg = max(tmp_be, (float)0);\n\t\t\t\t
float tmp_bh = min(tmp_bg, (float)1);\n\t\t\t\t float tmp_bi = (float)2

float tmp_bo = min(tmp_bn, (float)1);\n\t\t\t\t SetAttribute_18B2FD0( /*inout
*/attributes.color, float3(0.303435922, 0.396226406, 0.274741888), tmp_bo);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t\t float tmp_ba = tmp_z - uniform_b;\n\t\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t\t float tmp_ba = tmp_z - uniform_a;\n\t\t\t\t
float tmp_bb = abs(tmp_ba);\n\t\t\t\t float tmp_bc = tmp_bb - (float)1;\n\t\t\t\t
float tmp_be = tmp_bc / (float)6;\n\t\t\t\t float tmp_bg = max(tmp_be, (float)0);\n\t\t\t\t
float tmp_bh = min(tmp_bg, (float)1);\n\t\t\t\t float tmp_bi = (float)2

* float2(-i.VFX_VARYING_OFFSETS.z,1);\n\t\t\t\telse if (i.VFX_VARYING_FACEID
== 1)\n\t\t\t\t\tuv = i.VFX_VARYING_OFFSETS.xz * float2(i.VFX_VARYING_OFFSETS.y,1);\n\t\t\t\telse\n\t\t\t\t\tuv
= i.VFX_VARYING_OFFSETS.zy * float2(i.VFX_VARYING_OFFSETS.x,1);\n\t\t\t\treturn
uv * 0.5f + 0.5f;\n\t\t\t#else\n\t\t\t\treturn 0.0f;\n\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_Target0\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
uv * 0.5f + 0.5f;\n\t\t\t#else\n\t\t\t\treturn 0.0f;\n\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 0\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t//
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"GBuffer\" }\n\t\t\t\n\t\t
Stencil\n\t\t {\n\t\t WriteMask 6\n\t\t Ref 2\n\t\t Comp Always\n\t\t
Pass Replace\n\t\t }\n\t\n\t\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target

tmp_bi, tmp_bi);\n\t\t\t\t SetAttribute_545F0ED( /*inout */attributes.color,
tmp_bj);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t SetAttribute_545F0ED( /*inout */attributes.color,
float3(0.447058797, 0.692561686, 1));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t float
tmp_x = attributes.position[1];\n\t\t\t\t float tmp_y = tmp_x - uniform_b;\n\t\t\t\t
tmp_x = attributes.position[1];\n\t\t\t\t float tmp_y = tmp_x - uniform_a;\n\t\t\t\t
float tmp_z = abs(tmp_y);\n\t\t\t\t float tmp_bb = tmp_z - (float)1;\n\t\t\t\t
float tmp_bd = tmp_bb / (float)6;\n\t\t\t\t float tmp_bf = max(tmp_bd, (float)0);\n\t\t\t\t
float tmp_bg = min(tmp_bf, (float)1);\n\t\t\t\t float tmp_bh = (float)2

SetAttribute_501D4123( /*inout */attributes.angleX, tmp_bn);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
float tmp_x = attributes.position[1];\n\t\t\t\t float tmp_y = tmp_x - uniform_b;\n\t\t\t\t
float tmp_x = attributes.position[1];\n\t\t\t\t float tmp_y = tmp_x - uniform_a;\n\t\t\t\t
float tmp_z = abs(tmp_y);\n\t\t\t\t float tmp_bb = tmp_z - (float)1;\n\t\t\t\t
float tmp_bd = tmp_bb / (float)6;\n\t\t\t\t float tmp_bf = max(tmp_bd, (float)0);\n\t\t\t\t
float tmp_bg = min(tmp_bf, (float)1);\n\t\t\t\t float tmp_bh = (float)2

SetAttribute_501D4121( /*inout */attributes.angleZ, tmp_bn);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t\t float tmp_ba = tmp_z - uniform_b;\n\t\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t\t float tmp_ba = tmp_z - uniform_a;\n\t\t\t\t
float tmp_bb = abs(tmp_ba);\n\t\t\t\t float tmp_bc = tmp_bb - (float)1;\n\t\t\t\t
float tmp_be = tmp_bc / (float)6;\n\t\t\t\t float tmp_bg = max(tmp_be, (float)0);\n\t\t\t\t
float tmp_bh = min(tmp_bg, (float)1);\n\t\t\t\t float tmp_bi = (float)2

float tmp_bo = min(tmp_bn, (float)1);\n\t\t\t\t SetAttribute_18B2FD0( /*inout
*/attributes.color, float3(0.303435922, 0.396226406, 0.274741888), tmp_bo);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t\t float tmp_ba = tmp_z - uniform_b;\n\t\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t\t float tmp_ba = tmp_z - uniform_a;\n\t\t\t\t
float tmp_bb = abs(tmp_ba);\n\t\t\t\t float tmp_bc = tmp_bb - (float)1;\n\t\t\t\t
float tmp_be = tmp_bc / (float)6;\n\t\t\t\t float tmp_bg = max(tmp_be, (float)0);\n\t\t\t\t
float tmp_bh = min(tmp_bg, (float)1);\n\t\t\t\t float tmp_bi = (float)2

= smoothness;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_STANDARD\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_METALLIC\n\t\t\t\t\t\t\t\t\tfloat metallic = (float)0;\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t
float tmp_x = attributes.position[1];\n\t\t\t\t\t\t\t\t\t float tmp_y =
tmp_x - uniform_b;\n\t\t\t\t\t\t\t\t\t float tmp_z = abs(tmp_y);\n\t\t\t\t\t\t\t\t\t
tmp_x - uniform_a;\n\t\t\t\t\t\t\t\t\t float tmp_z = abs(tmp_y);\n\t\t\t\t\t\t\t\t\t
float tmp_bb = tmp_z - (float)1;\n\t\t\t\t\t\t\t\t\t float tmp_bd = tmp_bb
/ (float)6;\n\t\t\t\t\t\t\t\t\t float tmp_bf = max(tmp_bd, (float)0);\n\t\t\t\t\t\t\t\t\t
float tmp_bg = min(tmp_bf, (float)1);\n\t\t\t\t\t\t\t\t\t float tmp_bh =

tmp_bi, tmp_bi);\n\t\t\t\t SetAttribute_545F0ED( /*inout */attributes.color,
tmp_bj);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t SetAttribute_545F0ED( /*inout */attributes.color,
float3(0.447058797, 0.692561686, 1));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t float
tmp_x = attributes.position[1];\n\t\t\t\t float tmp_y = tmp_x - uniform_b;\n\t\t\t\t
tmp_x = attributes.position[1];\n\t\t\t\t float tmp_y = tmp_x - uniform_a;\n\t\t\t\t
float tmp_z = abs(tmp_y);\n\t\t\t\t float tmp_bb = tmp_z - (float)1;\n\t\t\t\t
float tmp_bd = tmp_bb / (float)6;\n\t\t\t\t float tmp_bf = max(tmp_bd, (float)0);\n\t\t\t\t
float tmp_bg = min(tmp_bf, (float)1);\n\t\t\t\t float tmp_bh = (float)2

SetAttribute_501D4123( /*inout */attributes.angleX, tmp_bn);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
float tmp_x = attributes.position[1];\n\t\t\t\t float tmp_y = tmp_x - uniform_b;\n\t\t\t\t
float tmp_x = attributes.position[1];\n\t\t\t\t float tmp_y = tmp_x - uniform_a;\n\t\t\t\t
float tmp_z = abs(tmp_y);\n\t\t\t\t float tmp_bb = tmp_z - (float)1;\n\t\t\t\t
float tmp_bd = tmp_bb / (float)6;\n\t\t\t\t float tmp_bf = max(tmp_bd, (float)0);\n\t\t\t\t
float tmp_bg = min(tmp_bf, (float)1);\n\t\t\t\t float tmp_bh = (float)2

SetAttribute_501D4121( /*inout */attributes.angleZ, tmp_bn);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t\t float tmp_ba = tmp_z - uniform_b;\n\t\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t\t float tmp_ba = tmp_z - uniform_a;\n\t\t\t\t
float tmp_bb = abs(tmp_ba);\n\t\t\t\t float tmp_bc = tmp_bb - (float)1;\n\t\t\t\t
float tmp_be = tmp_bc / (float)6;\n\t\t\t\t float tmp_bg = max(tmp_be, (float)0);\n\t\t\t\t
float tmp_bh = min(tmp_bg, (float)1);\n\t\t\t\t float tmp_bi = (float)2

float tmp_bo = min(tmp_bn, (float)1);\n\t\t\t\t SetAttribute_18B2FD0( /*inout
*/attributes.color, float3(0.303435922, 0.396226406, 0.274741888), tmp_bo);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t\t float tmp_ba = tmp_z - uniform_b;\n\t\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t\t float tmp_ba = tmp_z - uniform_a;\n\t\t\t\t
float tmp_bb = abs(tmp_ba);\n\t\t\t\t float tmp_bc = tmp_bb - (float)1;\n\t\t\t\t
float tmp_be = tmp_bc / (float)6;\n\t\t\t\t float tmp_bg = max(tmp_be, (float)0);\n\t\t\t\t
float tmp_bh = min(tmp_bg, (float)1);\n\t\t\t\t float tmp_bi = (float)2

1\n#define VFX_USE_PIVOTY_CURRENT 1\n#define VFX_USE_PIVOTZ_CURRENT 1\n#define
VFX_USE_SIZE_CURRENT 1\n#define VFX_USE_SCALEX_CURRENT 1\n#define VFX_USE_SCALEZ_CURRENT
1\n#define VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float uniform_b;\n float currentFrameIndex;\n uint2 PADDING_0;\nCBUFFER_END\n\nstruct
float uniform_a;\n float currentFrameIndex;\n uint2 PADDING_0;\nCBUFFER_END\n\nstruct
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n\r\nByteAddressBuffer
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n\r\nByteAddressBuffer
attributeBuffer;\r\nRWByteAddressBuffer elementToVFXBuffer;\r\n#if VFX_USE_ALIVE_CURRENT\r\nStructuredBuffer<uint>
deadListOut;\r\n#endif\r\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\nStructuredBuffer<uint>
indirectBuffer;\r\n#endif\r\n\r\nCBUFFER_START(updateParams)\r\n\tuint nbMax;\r\n\tuint

tmp_bl = float3(tmp_bk, tmp_bk, tmp_bk);\n\t\t\t SetAttribute_545F0ED( /*inout
*/attributes.color, tmp_bl);\n\t\t\t}\n\t\t\t{\n\t\t\t SetAttribute_545F0ED(
/*inout */attributes.color, float3(0.447058797, 0.692561686, 1));\n\t\t\t}\n\t\t\t{\n\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t float tmp_ba = tmp_z - uniform_b;\n\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t float tmp_ba = tmp_z - uniform_a;\n\t\t\t
float tmp_bb = abs(tmp_ba);\n\t\t\t float tmp_bd = tmp_bb - (float)1;\n\t\t\t
float tmp_bf = tmp_bd / (float)6;\n\t\t\t float tmp_bh = max(tmp_bf, (float)0);\n\t\t\t
float tmp_bi = min(tmp_bh, (float)1);\n\t\t\t float tmp_bj = (float)2 *

SetAttribute_501D4123( /*inout */attributes.angleX, tmp_bp);\n\t\t\t}\n\t\t\t{\n\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t float tmp_ba = tmp_z - uniform_b;\n\t\t\t
float tmp_z = attributes.position[1];\n\t\t\t float tmp_ba = tmp_z - uniform_a;\n\t\t\t
float tmp_bb = abs(tmp_ba);\n\t\t\t float tmp_bd = tmp_bb - (float)1;\n\t\t\t
float tmp_bf = tmp_bd / (float)6;\n\t\t\t float tmp_bh = max(tmp_bf, (float)0);\n\t\t\t
float tmp_bi = min(tmp_bh, (float)1);\n\t\t\t float tmp_bj = (float)2 *

SetAttribute_501D4121( /*inout */attributes.angleZ, tmp_bp);\n\t\t\t}\n\t\t\t{\n\t\t\t
float tmp_bb = attributes.position[1];\n\t\t\t float tmp_bc = tmp_bb - uniform_b;\n\t\t\t
float tmp_bb = attributes.position[1];\n\t\t\t float tmp_bc = tmp_bb - uniform_a;\n\t\t\t
float tmp_bd = abs(tmp_bc);\n\t\t\t float tmp_be = tmp_bd - (float)1;\n\t\t\t
float tmp_bg = tmp_be / (float)6;\n\t\t\t float tmp_bi = max(tmp_bg, (float)0);\n\t\t\t
float tmp_bj = min(tmp_bi, (float)1);\n\t\t\t float tmp_bk = (float)2 *

float tmp_bq = min(tmp_bp, (float)1);\n\t\t\t SetAttribute_18B2FD0( /*inout
*/attributes.color, float3(0.303435922, 0.396226406, 0.274741888), tmp_bq);\n\t\t\t}\n\t\t\t{\n\t\t\t
float tmp_bb = attributes.position[1];\n\t\t\t float tmp_bc = tmp_bb - uniform_b;\n\t\t\t
float tmp_bb = attributes.position[1];\n\t\t\t float tmp_bc = tmp_bb - uniform_a;\n\t\t\t
float tmp_bd = abs(tmp_bc);\n\t\t\t float tmp_be = tmp_bd - (float)1;\n\t\t\t
float tmp_bg = tmp_be / (float)6;\n\t\t\t float tmp_bi = max(tmp_bg, (float)0);\n\t\t\t
float tmp_bj = min(tmp_bi, (float)1);\n\t\t\t float tmp_bk = (float)2 *

pastFrameIndex: 0
perCameraBuffer: 1
values:
- nameId: uniform_b
- nameId: uniform_a
index: 7
- nameId: currentFrameIndex
index: 18

pastFrameIndex: 1
perCameraBuffer: 1
values:
- nameId: uniform_b
- nameId: uniform_a
index: 7
- nameId: currentFrameIndex
index: 18

174
Assets/Samples/Portal/Portal.vfx


VFX_USE_PIVOTX_CURRENT 1\n#define VFX_USE_PIVOTY_CURRENT 1\n#define VFX_USE_PIVOTZ_CURRENT
1\n#define VFX_USE_SCALEX_CURRENT 1\n#define VFX_USE_SCALEY_CURRENT 1\n#define
VFX_WORLD_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float4x4 uniform_o;\n float4x4 uniform_p;\n float4 uniform_f;\n float4
uniform_q;\n float3 ArcTorus_center_a;\n float uniform_c;\n float3
uniform_h;\n float uniform_d;\n float uniform_e;\n float uniform_g;\n
float uniform_i;\n float uniform_j;\n float uniform_k;\n float uniform_l;\n
float uniform_m;\n float uniform_n;\n float uniform_r;\n float uniform_s;\n
float4x4 uniform_m;\n float4x4 uniform_n;\n float4 uniform_d;\n float4
uniform_o;\n float3 ArcTorus_center_a;\n float uniform_a;\n float3
uniform_f;\n float uniform_b;\n float uniform_c;\n float uniform_e;\n
float uniform_g;\n float uniform_h;\n float uniform_i;\n float uniform_j;\n
float uniform_k;\n float uniform_l;\n float uniform_p;\n float uniform_q;\n
uint2 PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n float3 position;\n
uint seed;\n float3 direction;\n float3 color;\n float3 velocity;\n
float mass;\n float lifetime;\n uint particleId;\n float age;\n

attributeMap_b;\nSamplerState samplerattributeMap_b;\nfloat4 attributeMap_b_TexelSize;\n\n\r\n\r\n#define
attributeMap_b;\nSamplerState samplerattributeMap_b;\nfloat4 attributeMap_b_TexelSize;\n\n\n\r\n\r\n#define
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer
attributeBuffer;\r\nByteAddressBuffer sourceAttributeBuffer;\r\n\r\nCBUFFER_START(initParams)\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n uint nbSpawned;\t\t\t\t\t// Numbers of particle

Source:Slot Random:Uniform channels:XYZ */\n{\n mass = lerp(A,B,RAND);\n}\nvoid
SetAttribute_F0142CB9(inout float lifetime, float Lifetime) /*attribute:lifetime
Composition:Overwrite Source:Slot Random:Off channels:XYZ */\n{\n lifetime
= Lifetime;\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint
= Lifetime;\n}\n\n\r\n\r\n// Due to a bug in HLSL compiler, disable spurious
\"unitialized variable\" due to mid function return statement\r\n#pragma warning(push)\r\n#pragma
warning(disable : 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

ArcTorus_center_a, (float)1, (float)0.0399999991, (float)6.28318548, (float)0,
(float)0.0399999991);\n }\n {\n float3 tmp_bs = attributes.position
* float3(0.140000001, 0.140000001, 0.140000001);\n uint tmp_bu =
attributes.particleId ^ asuint(uniform_e);\n float tmp_bv = FixedRand(tmp_bu);\n
float tmp_bw = uniform_d * tmp_bv;\n float tmp_bx = uniform_c +
attributes.particleId ^ asuint(uniform_c);\n float tmp_bv = FixedRand(tmp_bu);\n
float tmp_bw = uniform_b * tmp_bv;\n float tmp_bx = uniform_a +
tmp_bw;\n float3 tmp_by = float3(tmp_bx, tmp_bx, tmp_bx);\n
float3 tmp_bz = float3(0, -1, 0) * tmp_by;\n float3 tmp_ca = tmp_bs
+ tmp_bz;\n AttributeFromMap_6F69BFAE( /*inout */attributes.position,

float tmp_bt = tmp_br[0];\n float tmp_bu = atan2(tmp_bs, tmp_bt);\n
float tmp_bv = tmp_bu + uniform_g;\n float tmp_bx = tmp_bv / (float)6.28318548;\n
float tmp_bv = tmp_bu + uniform_e;\n float tmp_bx = tmp_bv / (float)6.28318548;\n
float tmp_ca = tmp_bz / (float)6.28318548;\n float tmp_cb = SampleCurve(uniform_f,tmp_ca);\n
float tmp_ca = tmp_bz / (float)6.28318548;\n float tmp_cb = SampleCurve(uniform_d,tmp_ca);\n
= tmp_br[2];\n float tmp_bt = uniform_i * tmp_bs;\n float
tmp_bu = tmp_br[1];\n float tmp_bv = uniform_j * tmp_bu;\n
= tmp_br[2];\n float tmp_bt = uniform_g * tmp_bs;\n float
tmp_bu = tmp_br[1];\n float tmp_bv = uniform_h * tmp_bu;\n
float tmp_by = uniform_j * tmp_bx;\n float tmp_bz = uniform_k *
float tmp_by = uniform_h * tmp_bx;\n float tmp_bz = uniform_i *
= uniform_k * tmp_bu;\n float tmp_cc = uniform_i * tmp_bx;\n
= uniform_i * tmp_bu;\n float tmp_cc = uniform_g * tmp_bx;\n
float tmp_cd = tmp_cb - tmp_cc;\n float3 tmp_ce = float3(tmp_bw,
tmp_ca, tmp_cd);\n float3 tmp_cg = tmp_ce * tmp_ce;\n
float tmp_ch = tmp_cg[2];\n float tmp_ci = tmp_cg[1];\n

float tmp_cr = Rand(attributes.seed);\n float tmp_ct = tmp_cr *
(float)6;\n float3 tmp_cu = float3(tmp_ct, tmp_ct, tmp_ct);\n
float3 tmp_cv = tmp_cq * tmp_cu;\n float3 tmp_cw = tmp_cv - ArcTorus_center_a;\n
float3 tmp_cx = uniform_h * tmp_cw;\n float tmp_cy = tmp_cx[2];\n
float3 tmp_cx = uniform_f * tmp_cw;\n float tmp_cy = tmp_cx[2];\n
= uniform_h * tmp_dd;\n float3 tmp_df = ArcTorus_center_a + tmp_de;\n
= uniform_f * tmp_dd;\n float3 tmp_df = ArcTorus_center_a + tmp_de;\n
float tmp_do = tmp_dg[1];\n float tmp_dp = tmp_do * uniform_l;\n
float tmp_dq = tmp_dg[2];\n float tmp_dr = tmp_dq * uniform_m;\n
float tmp_ds = tmp_dp - tmp_dr;\n float tmp_dt = tmp_dq * uniform_n;\n
float tmp_du = tmp_dg[0];\n float tmp_dv = tmp_du * uniform_l;\n
float tmp_dw = tmp_dt - tmp_dv;\n float tmp_dx = tmp_du * uniform_m;\n
float tmp_dy = tmp_do * uniform_n;\n float tmp_dz = tmp_dx - tmp_dy;\n
float tmp_do = tmp_dg[1];\n float tmp_dp = tmp_do * uniform_j;\n
float tmp_dq = tmp_dg[2];\n float tmp_dr = tmp_dq * uniform_k;\n
float tmp_ds = tmp_dp - tmp_dr;\n float tmp_dt = tmp_dq * uniform_l;\n
float tmp_du = tmp_dg[0];\n float tmp_dv = tmp_du * uniform_j;\n
float tmp_dw = tmp_dt - tmp_dv;\n float tmp_dx = tmp_du * uniform_k;\n
float tmp_dy = tmp_do * uniform_l;\n float tmp_dz = tmp_dx - tmp_dy;\n
float3 tmp_ef = mul(uniform_p, float4(attributes.position, 1.0)).xyz;\n
float3 tmp_eh = tmp_ef * float3(0, 0, 32);\n float3 tmp_ei = mul((float3x3)uniform_o,
float3 tmp_ef = mul(uniform_n, float4(attributes.position, 1.0)).xyz;\n
float3 tmp_eh = tmp_ef * float3(0, 0, 32);\n float3 tmp_ei = mul((float3x3)uniform_m,
= atan2(tmp_bu, tmp_bx);\n float tmp_el = tmp_ek + uniform_g;\n
= atan2(tmp_bu, tmp_bx);\n float tmp_el = tmp_ek + uniform_e;\n
/ (float)6.28318548;\n float tmp_er = SampleCurve(uniform_q,tmp_eq);\n
/ (float)6.28318548;\n float tmp_er = SampleCurve(uniform_o,tmp_eq);\n
float3 tmp_es = float3(tmp_er, tmp_er, tmp_er);\n float3 tmp_et
= tmp_ej * tmp_es;\n float tmp_ev = Rand(attributes.seed);\n
float tmp_ex = tmp_ev * (float)1.20000005;\n float tmp_ey = (float)0.800000012

/*inout */attributes.mass, /*inout */attributes.seed, (float)0.600000024,
(float)1.20000005);\n }\n {\n uint tmp_br = attributes.particleId
^ asuint(uniform_r);\n float tmp_bs = FixedRand(tmp_br);\n
^ asuint(uniform_p);\n float tmp_bs = FixedRand(tmp_br);\n
float tmp_bu = attributes.position[1];\n float tmp_bw = max(tmp_bu,
(float)0.200000003);\n float tmp_by = min(tmp_bw, (float)0.800000012);\n
float tmp_bz = tmp_by - (float)0.200000003;\n float tmp_cb = tmp_bz

tmp_ck = min(tmp_ci, (float)1);\n float tmp_cm = tmp_ck * (float)-1.5;\n
float tmp_cn = (float)2.5 + tmp_cm;\n uint tmp_cp = attributes.particleId
^ asuint(uniform_s);\n float tmp_cq = FixedRand(tmp_cp);\n
^ asuint(uniform_q);\n float tmp_cq = FixedRand(tmp_cp);\n
float tmp_cr = tmp_cq * (float)0.899999976;\n float tmp_cs = (float)0.899999976
+ tmp_cr;\n float tmp_ct = tmp_cn * tmp_cs;\n float tmp_cw
= tmp_cq * (float)0.49999997;\n float tmp_cx = (float)0.400000006

VFX_USE_LIFETIME_CURRENT 1\n#define VFX_USE_AGE_CURRENT 1\n#define VFX_USE_ALIVE_CURRENT
1\n#define VFX_WORLD_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float4x4 InvFieldTransform_a;\n float4x4 FieldTransform_a;\n float4x4
uniform_e;\n float3 Sphere_center_e;\n float deltaTime_a;\nCBUFFER_END\n\nstruct
uniform_a;\n float3 Sphere_center_e;\n float deltaTime_a;\nCBUFFER_END\n\nstruct
Attributes\n{\n float3 position;\n uint seed;\n float3 velocity;\n
float mass;\n float lifetime;\n float age;\n bool alive;\n};\n\nstruct
SourceAttributes\n{\n};\n\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT

tmp_bq, (float)1, (float)1.5, (int)2, (float)0.5, (float)2, deltaTime_a);\n\t\t\t}\n\t\t\t{\n\t\t\t
float tmp_be = attributes.position[1];\n\t\t\t bool tmp_bg = tmp_be > (float)0.0199999996;\n\t\t\t
float tmp_bi = tmp_bg ? (float)-9.81000042 : (float)0;\n\t\t\t float3 tmp_bj
= float3((float)0, tmp_bi, (float)0);\n\t\t\t float3 tmp_bk = mul((float3x3)uniform_e,
= float3((float)0, tmp_bi, (float)0);\n\t\t\t float3 tmp_bk = mul((float3x3)uniform_a,
tmp_bj);\n\t\t\t Gravity( /*inout */attributes.velocity, tmp_bk, deltaTime_a);\n\t\t\t}\n\t\t\t{\n\t\t\t
Drag_0( /*inout */attributes.velocity, attributes.mass, (float)2, deltaTime_a);\n\t\t\t}\n\t\t\t{\n\t\t\t
CollisionPlane_1( /*inout */attributes.position, /*inout */attributes.velocity,

tmp_bq, (float)1, (float)1.5, (int)2, (float)0.5, (float)2, deltaTime_a);\n\t\t}\n\t\t{\n\t\t
float tmp_be = attributes.position[1];\n\t\t bool tmp_bg = tmp_be > (float)0.0199999996;\n\t\t
float tmp_bi = tmp_bg ? (float)-9.81000042 : (float)0;\n\t\t float3 tmp_bj
= float3((float)0, tmp_bi, (float)0);\n\t\t float3 tmp_bk = mul((float3x3)uniform_e,
= float3((float)0, tmp_bi, (float)0);\n\t\t float3 tmp_bk = mul((float3x3)uniform_a,
tmp_bj);\n\t\t Gravity( /*inout */attributes.velocity, tmp_bk, deltaTime_a);\n\t\t}\n\t\t{\n\t\t
Drag_0( /*inout */attributes.velocity, attributes.mass, (float)2, deltaTime_a);\n\t\t}\n\t\t{\n\t\t
CollisionPlane_1( /*inout */attributes.position, /*inout */attributes.velocity,

name: '[System 1]Output Particle Quad'
source: "Shader \"Hidden/VFX/Portal/System 1/Output Particle Quad\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\"
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
SrcAlpha One \n\t\tBlend 1 SrcAlpha OneMinusSrcAlpha\n\t\tZTest LEqual\n\t\tZWrite
Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define NB_THREADS_PER_GROUP
64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL (0)\n\t\t#define

1\n\t\t#define VFX_USE_SCALEZ_CURRENT 1\n\t\t#define VFX_COLORMAPPING_DEFAULT
1\n\t\t#define IS_TRANSPARENT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_ADD 1\n\t\t#define
WRITE_MOTION_VECTOR_IN_FORWARD 1\n\t\t#define VFX_BYPASS_EXPOSURE 1\n\t\t#define
VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_WORLD_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
float4 Scale_b;\n\t\t float4 Alpha_d;\n\t\t float Alpha_e;\n\t\t float
gradient_f;\n\t\t float currentFrameIndex;\n\t\t uint PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct

angleY;\n\t\t float angleZ;\n\t\t float pivotX;\n\t\t float pivotY;\n\t\t
float pivotZ;\n\t\t float size;\n\t\t float scaleX;\n\t\t float scaleY;\n\t\t
float scaleZ;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

angleY;\n float angleZ;\n float pivotX;\n float pivotY;\n float
pivotZ;\n float size;\n float scaleX;\n float scaleY;\n float scaleZ;\n};\n\nstruct
SourceAttributes\n{\n};\n\nTexture2D mainTexture;\nSamplerState samplermainTexture;\nfloat4
mainTexture_TexelSize;\n\n\r\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n\r\nByteAddressBuffer
mainTexture_TexelSize;\n\n\n\r\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n\r\nByteAddressBuffer
attributeBuffer;\r\nRWByteAddressBuffer elementToVFXBuffer;\r\n#if VFX_USE_ALIVE_CURRENT\r\nStructuredBuffer<uint>
deadListOut;\r\n#endif\r\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\nStructuredBuffer<uint>
indirectBuffer;\r\n#endif\r\n\r\nCBUFFER_START(updateParams)\r\n\tuint nbMax;\r\n\tuint

values:
- nameId: ArcTorus_center_a
index: 3
- nameId: uniform_c
- nameId: uniform_a
- nameId: uniform_d
- nameId: uniform_b
- nameId: uniform_e
- nameId: uniform_c
- nameId: uniform_f
- nameId: uniform_d
- nameId: uniform_g
- nameId: uniform_e
- nameId: uniform_h
- nameId: uniform_f
- nameId: uniform_i
- nameId: uniform_g
- nameId: uniform_j
- nameId: uniform_h
- nameId: uniform_k
- nameId: uniform_i
- nameId: uniform_l
- nameId: uniform_j
- nameId: uniform_m
- nameId: uniform_k
- nameId: uniform_n
- nameId: uniform_l
- nameId: uniform_o
- nameId: uniform_m
- nameId: uniform_p
- nameId: uniform_n
- nameId: uniform_q
- nameId: uniform_o
- nameId: uniform_r
- nameId: uniform_p
- nameId: uniform_s
- nameId: uniform_q
index: 26
- nameId: attributeMap_b
index: 81

index: 54
- nameId: deltaTime_a
index: 32
- nameId: uniform_e
- nameId: uniform_a
index: 1
- nameId: Sphere_center_e
index: 3

389
Assets/Samples/RibbonPack/RibbonPack.vfx


VFX_USE_AGE_CURRENT 1\n#define VFX_USE_RATECOUNT_C_CURRENT 1\n#define VFX_USE_ALIVE_CURRENT
1\n#define VFX_USE_STRIPALIVE_CURRENT 1\n#define VFX_LOCAL_SPACE 1\n#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float uniform_b;\n float Color_d;\n uint2 PADDING_0;\nCBUFFER_END\n\nstruct
float uniform_a;\n float Color_d;\n uint2 PADDING_0;\nCBUFFER_END\n\nstruct
Attributes\n{\n float3 position;\n uint seed;\n float3 direction;\n
float lifetime;\n float3 velocity;\n float3 color;\n float alpha;\n
uint particleId;\n float size;\n float age;\n float rateCount_c;\n

Composition:Overwrite AlphaComposition:Overwrite SampleMode:RandomConstantPerParticle
Mode:PerComponent ColorMode:ColorAndAlpha channels:XYZ */\n{\n float t =
FIXED_RAND(Seed);\n float4 value = 0.0f;\n value = SampleGradient(Color,
t);\n color = value.rgb;\n alpha = value.a;\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
t);\n color = value.rgb;\n alpha = value.a;\n}\n\n\r\n\r\n// Due to a
bug in HLSL compiler, disable spurious \"unitialized variable\" due to mid
function return statement\r\n#pragma warning(push)\r\n#pragma warning(disable
: 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

float3(0, 0, 0), (float)0.200000003, (float)6.28318548, (float)1);\n
}\n {\n SetAttribute_F01429A3( /*inout */attributes.lifetime,
/*inout */attributes.seed, (float)8, (float)10);\n }\n {\n
uint tmp_t = attributes.particleId ^ asuint(uniform_b);\n float
uint tmp_t = attributes.particleId ^ asuint(uniform_a);\n float
tmp_u = FixedRand(tmp_t);\n float tmp_w = tmp_u * (float)0.100000009;\n
float tmp_x = (float)0.0500000007 + tmp_w;\n VelocityDirection_18D(
/*inout */attributes.velocity, /*inout */attributes.direction, float3(0, 0,

* 0x8 + 0xA284) << 2,asuint(attributes.size));\n\t\t\t\tattributeBuffer.Store((index
* 0xC + 0x3) << 2,asuint(attributes.age));\n\t\t\t\tattributeBuffer.Store((index
* 0xC + 0x7) << 2,asuint(attributes.rateCount_c));\n\t\t\t\tattributeBuffer.Store((index
* 0xC + 0x9) << 2,uint(attributes.stripAlive));\n\t\t\t\tfor (uint i = 0; i
< eventCount_a; ++i) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
* 0xC + 0x9) << 2,uint(attributes.stripAlive));\n\t\t\t\tfor (uint ia = 0;
ia < eventCount_a; ++ia) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
* 0xC + 0x8) << 2,uint(attributes.alive));\n\t\t\t\tfor (uint i = 0; i < eventCount_a;
++i) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if USE_DEAD_LIST && !VFX_USE_STRIPALIVE_CURRENT\r\n\t\t\t\tuint
deadIndex = deadListOut.IncrementCounter();\r\n\t\t\t\tdeadListOut[deadIndex]
* 0xC + 0x8) << 2,uint(attributes.alive));\n\t\t\t\tfor (uint ia = 0; ia <
eventCount_a; ++ia) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if USE_DEAD_LIST
&& !VFX_USE_STRIPALIVE_CURRENT\r\n\t\t\t\tuint deadIndex = deadListOut.IncrementCounter();\r\n\t\t\t\tdeadListOut[deadIndex]
= index;\r\n#endif\r\n\t\t\t}\r\n\t\t}\r\n#if USE_DEAD_LIST && VFX_USE_STRIPALIVE_CURRENT\r\n
else if (attributes.stripAlive)\r\n {\r\n if (STRIP_DATA_X(attachedStripDataBuffer,
STRIP_MIN_ALIVE, index) == ~1) // Attached strip is no longer alive, recycle

* 0xC + 0x3) << 2,asuint(attributes.age));\n\t\tattributeBuffer.Store((index
* 0xC + 0x7) << 2,asuint(attributes.rateCount_c));\n\t\tattributeBuffer.Store((index
* 0xC + 0x8) << 2,uint(attributes.alive));\n\t\tattributeBuffer.Store((index
* 0xC + 0x9) << 2,uint(attributes.stripAlive));\n\t\tfor (uint i = 0; i < eventCount_a;
++i) eventListOut_a.Append(index);\n\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
* 0xC + 0x9) << 2,uint(attributes.stripAlive));\n\t\tfor (uint ia = 0; ia <
eventCount_a; ++ia) eventListOut_a.Append(index);\n\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
uint indirectIndex = indirectBuffer.IncrementCounter();\r\n\t\tindirectBuffer[indirectIndex]
= index;\r\n#endif\r\n#endif\r\n\t}\r\n}\r\n"
- compute: 1

float Value) /*attribute:size Composition:Overwrite Source:Source Random:Off
channels:XYZ */\n{\n size = Value;\n}\nvoid SetAttribute_D5151645(inout
float scaleY, float Scale) /*attribute:scale Composition:Overwrite Source:Slot
Random:Off channels:Y */\n{\n scaleY = Scale.x;\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
Random:Off channels:Y */\n{\n scaleY = Scale.x;\n}\n\n\r\n\r\n// Due to
a bug in HLSL compiler, disable spurious \"unitialized variable\" due to mid
function return statement\r\n#pragma warning(push)\r\n#pragma warning(disable
: 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

name: '[Trails]Output ParticleStrip Lit Quad'
source: "Shader \"Hidden/VFX/RibbonPack/Trails/Output ParticleStrip Lit Quad\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Geometry+0\" \"IgnoreProjector\"=\"False\"
\"RenderType\"=\"Opaque\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
\"RenderType\"=\"Opaque\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
LEqual\n\t\tZWrite On\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

1\n\t\t#define HDRP_USE_BASE_COLOR_MAP_ALPHA 1\n\t\t#define HDRP_USE_BASE_COLOR
1\n\t\t#define IS_OPAQUE_NOT_SIMPLE_LIT_PARTICLE 1\n\t\t#define USE_NORMAL_BENDING
1\n\t\t#define VFX_STRIPS_UV_STRECHED 1\n\t\t#define FORCE_NORMAL_VARYING 1\n\t\t#define
VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_LOCAL_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
float4 Scale_a;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct Attributes\n\t\t{\n\t\t
float3 position;\n\t\t float3 color;\n\t\t float lifetime;\n\t\t float

float pivotZ;\n\t\t float age;\n\t\t bool alive;\n\t\t};\n\t\t\n\t\tstruct
SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D baseColorMap;\n\t\tSamplerState
samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

instanceID : SV_InstanceID;\n\t\t\t#define VFX_GET_INSTANCE_ID(i) i.instanceID\n\t\t#endif\n\t\t\n\t\tENDHLSL\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
{ \"LightMode\"=\"SceneSelectionPass\" }\n\t\t\n\t\t\tZWrite On\n\t\t\tBlend
Off\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#define VFX_PASSDEPTH VFX_PASSDEPTH_SELECTION\n\t\t\t#pragma
target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t#pragma multi_compile _
WRITE_NORMAL_BUFFER\n\t\t\t\n\t\t\t#define NEEDS_NORMAL\tdefined(WRITE_NORMAL_BUFFER)
target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t\n\t\t\t#define NEEDS_NORMAL\tdefined(WRITE_NORMAL_BUFFER)
|| FORCE_NORMAL_VARYING || SHADERGRAPH_NEEDS_NORMAL_DEPTHONLY\n\t\t\t#define
NEEDS_TANGENT\tUSE_NORMAL_MAP || USE_NORMAL_BENDING || SHADERGRAPH_NEEDS_TANGENT_DEPTHONLY\n\t\t\t\n\t\t\tstruct
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\n\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t\t{\n\t\t\t\t
\n\t\t\t\t diffusionProfileHash = (uint)1078544746;\n\t\t\t\t}\n\t\t\t\t\n
// Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\n\t\t\t\tfloat
alpha;\n\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\n\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t //TODO: investigate why this is needed\n\t\t\t preLightData.coatPartLambdaV
= 0;\n\t\t\t preLightData.coatIblR = 0;\n\t\t\t preLightData.coatIblF
= 0;\n\t\t\t \n\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t}\n\t\t\t\n\t\t\tvoid
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t#define SHADERPASS
SHADERPASS_MOTION_VECTORS\n\t\t\t\t\t#else\n\t\t\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\tvoid VFXGetHDRPLitData(out SurfaceData
surfaceData, out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData
preLightData, VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData,
uint2 tileIndex)\n\t\t\t\t\t{\t\n\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t\tuint
diffusionProfileHash = (uint)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t
diffusionProfileHash = (uint)1078544746;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t
// Loads diffusion profile\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha;\n\t\t\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\t\t\n\t\t\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\t\t\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t //TODO: investigate why this is needed\n\t\t\t\t\t
preLightData.coatPartLambdaV = 0;\n\t\t\t\t\t preLightData.coatIblR = 0;\n\t\t\t\t\t
preLightData.coatIblF = 0;\n\t\t\t\t\t \n\t\t\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvoid
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t{\n\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t}\n\t\t\t\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t
\n\t\t\t#pragma fragment frag\n\t\t\tvoid frag(ps_input i\n\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t,
bool frontFace : SV_IsFrontFace\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t, out float4 outMotionVector : SV_Target0\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target1\n\t\t\t\t#endif\n\t\t\t#else\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t, out float4 outColor :
SV_Target0\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t\t)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\tconst VFXUVData uvData
= GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\tfloat3 bitangentWS = cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\tbitangentWS = cross(tangentWS,normalWS);\n\t\t\t\t\t\t\ttangentWS
*= faceMul;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3x3 tbn
= float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t \n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t
float alpha = VFXGetFragmentColor(i).a;\n\t\t\t #if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t
alpha *= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t
#endif\n\t\t\t #endif\n\t\t\t VFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t
#else\n\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t normalWS = mul(n,tbn);\n\t\t\t
#endif\n\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t
\n\t\t\t surface.normalWS = normalWS;\n\t\t\t \n\t\t\t
EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface), i.VFX_VARYING_POSCS.xy,
outNormalBuffer);\n\t\t\t #endif\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t\t\t{\n\t\t\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t, bool frontFace
: SV_IsFrontFace\n\t\t\t\t\t#endif\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t// We need the depth color as SV_Target0 for
alpha to coverage\n\t\t\t\t\t\t, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t,
out float4 outMotionVector : SV_Target1\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target2\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t//
When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t\t, out
float4 outMotionVector : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t//
We need the depth color as SV_Target0 for alpha to coverage\n\t\t\t\t\t\t,
out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#elif
defined(WRITE_NORMAL_BUFFER)\n\t\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outColor
: SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\t\t\tconst VFXUVData
uvData = GetUVData(i);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\t\t\tfloat3 bitangentWS =
cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\t\t\tbitangentWS =
cross(tangentWS,normalWS);\n\t\t\t\t\t\t\t\t\ttangentWS *= faceMul;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t\t\t
#else\n\t\t\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t\t\t normalWS = mul(n,tbn);\n\t\t\t\t\t
#endif\n\t\t\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t\t\t
surface.normalWS = normalWS;\n\t\t\t\t\t EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface),
i.VFX_VARYING_POSCS.xy, outNormalBuffer);\n\t\t\t\t\t #endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\toutMotionVector = encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t// We use depth prepass
for scene selection in the editor, this code allow to output the outline correctly\n\t\t\t\t\toutColor
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH ==
VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t//void\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH
undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\t//
We use depth prepass for scene selection in the editor, this code allow to
output the outline correctly\n\t\t\t\t\t\t\toutColor = float4(_ObjectId, _PassValue,
1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t//void\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined\n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t#pragma target 4.5\n\t\t\t#define
UNITY_MATERIAL_LIT\n\t\t\t#pragma multi_compile _ WRITE_NORMAL_BUFFER\n\t\t\t\n\t\t\t#define
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t#pragma multi_compile _ WRITE_NORMAL_BUFFER\n\t\t\t#pragma
multi_compile _ WRITE_MSAA_DEPTH\n\t\t\t#pragma target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t\n\t\t\t#define
NEEDS_NORMAL\tdefined(WRITE_NORMAL_BUFFER) || FORCE_NORMAL_VARYING || SHADERGRAPH_NEEDS_NORMAL_DEPTHONLY\n\t\t\t#define
NEEDS_TANGENT\tUSE_NORMAL_MAP || USE_NORMAL_BENDING || SHADERGRAPH_NEEDS_TANGENT_DEPTHONLY\n\t\t\t\n\t\t\tstruct
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\n\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t\t{\n\t\t\t\t
\n\t\t\t\t diffusionProfileHash = (uint)1078544746;\n\t\t\t\t}\n\t\t\t\t\n
// Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\n\t\t\t\tfloat
alpha;\n\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\n\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t //TODO: investigate why this is needed\n\t\t\t preLightData.coatPartLambdaV
= 0;\n\t\t\t preLightData.coatIblR = 0;\n\t\t\t preLightData.coatIblF
= 0;\n\t\t\t \n\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t}\n\t\t\t\n\t\t\tvoid
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t#define SHADERPASS
SHADERPASS_MOTION_VECTORS\n\t\t\t\t\t#else\n\t\t\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\tvoid VFXGetHDRPLitData(out SurfaceData
surfaceData, out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData
preLightData, VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData,
uint2 tileIndex)\n\t\t\t\t\t{\t\n\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t\tuint
diffusionProfileHash = (uint)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t
diffusionProfileHash = (uint)1078544746;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t
// Loads diffusion profile\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha;\n\t\t\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\t\t\n\t\t\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\t\t\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t //TODO: investigate why this is needed\n\t\t\t\t\t
preLightData.coatPartLambdaV = 0;\n\t\t\t\t\t preLightData.coatIblR = 0;\n\t\t\t\t\t
preLightData.coatIblF = 0;\n\t\t\t\t\t \n\t\t\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvoid
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t{\n\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t}\n\t\t\t\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t
\n\t\t\t#pragma fragment frag\n\t\t\tvoid frag(ps_input i\n\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t,
bool frontFace : SV_IsFrontFace\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t, out float4 outMotionVector : SV_Target0\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target1\n\t\t\t\t#endif\n\t\t\t#else\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t, out float4 outColor :
SV_Target0\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t\t)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\tconst VFXUVData uvData
= GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\tfloat3 bitangentWS = cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\tbitangentWS = cross(tangentWS,normalWS);\n\t\t\t\t\t\t\ttangentWS
*= faceMul;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3x3 tbn
= float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t \n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t
float alpha = VFXGetFragmentColor(i).a;\n\t\t\t #if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t
alpha *= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t
#endif\n\t\t\t #endif\n\t\t\t VFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t
#else\n\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t normalWS = mul(n,tbn);\n\t\t\t
#endif\n\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t
\n\t\t\t surface.normalWS = normalWS;\n\t\t\t \n\t\t\t
EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface), i.VFX_VARYING_POSCS.xy,
outNormalBuffer);\n\t\t\t #endif\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t\t\t{\n\t\t\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t, bool frontFace
: SV_IsFrontFace\n\t\t\t\t\t#endif\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t// We need the depth color as SV_Target0 for
alpha to coverage\n\t\t\t\t\t\t, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t,
out float4 outMotionVector : SV_Target1\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target2\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t//
When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t\t, out
float4 outMotionVector : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t//
We need the depth color as SV_Target0 for alpha to coverage\n\t\t\t\t\t\t,
out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#elif
defined(WRITE_NORMAL_BUFFER)\n\t\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outColor
: SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\t\t\tconst VFXUVData
uvData = GetUVData(i);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\t\t\tfloat3 bitangentWS =
cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\t\t\tbitangentWS =
cross(tangentWS,normalWS);\n\t\t\t\t\t\t\t\t\ttangentWS *= faceMul;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t\t\t
#else\n\t\t\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t\t\t normalWS = mul(n,tbn);\n\t\t\t\t\t
#endif\n\t\t\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t\t\t
surface.normalWS = normalWS;\n\t\t\t\t\t EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface),
i.VFX_VARYING_POSCS.xy, outNormalBuffer);\n\t\t\t\t\t #endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\toutMotionVector = encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t// We use depth prepass
for scene selection in the editor, this code allow to output the outline correctly\n\t\t\t\t\toutColor
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH ==
VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t//void\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH
undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\t//
We use depth prepass for scene selection in the editor, this code allow to
output the outline correctly\n\t\t\t\t\t\t\toutColor = float4(_ObjectId, _PassValue,
1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t//void\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined\n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
{ \"LightMode\"=\"GBuffer\" }\n\t\t\n\t\t Stencil\n\t\t {\n\t\t WriteMask
6\n\t\t Ref 2\n\t\t Comp Always\n\t\t Pass Replace\n\t\t }\n\n\t\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma
target 4.5\n\t\t\t\n\t\t\t#pragma multi_compile _ LIGHT_LAYERS\n\t\t\t#pragma

VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t\t{\n\t\t\t\t
\n\t\t\t\t diffusionProfileHash = (uint)1078544746;\n\t\t\t\t}\n\t\t\t\t\n
// Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t{\n\t\t\t
\n\t\t\t diffusionProfileHash = (uint)1078544746;\n\t\t\t}\n\t\t\t\n //
Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\n\t\t\t\tfloat

index: 2
temporaryBuffers: []
values:
- nameId: uniform_b
- nameId: uniform_a
index: 9
- nameId: Color_d
index: 46

862
Assets/Samples/SpaceshipHoloTable/VFX/ARUI-Table-PinScreen.vfx
文件差异内容过多而无法显示
查看文件

272
Assets/Samples/UnityLogo/UnityLogo.vfx


1\n#define VFX_USE_ALIVE_CURRENT 1\n#define VFX_USE_AXISX_CURRENT 1\n#define
VFX_USE_AXISY_CURRENT 1\n#define VFX_USE_AXISZ_CURRENT 1\n#define VFX_USE_SCALEX_CURRENT
1\n#define VFX_USE_SCALEY_CURRENT 1\n#define VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float3 Color_b;\n float uniform_c;\n float3 uniform_f;\n float uniform_d;\n
float3 uniform_g;\n float uniform_e;\n float uniform_h;\n float uniform_i;\n
float3 Color_b;\n float uniform_a;\n float3 uniform_d;\n float uniform_b;\n
float3 uniform_e;\n float uniform_c;\n float uniform_f;\n float uniform_g;\n
uint2 PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n float lifetime;\n
uint seed;\n float3 color;\n float3 position;\n float3 direction;\n
uint particleId;\n float3 velocity;\n float age;\n float alpha;\n

* RAND, 1.0f / 3.0f);\n \n float2 sincosTheta;\n sincos(theta, sincosTheta.x,
sincosTheta.y);\n sincosTheta *= sqrt(1.0f - cosPhi * cosPhi);\n \n
direction = float3(sincosTheta, cosPhi);\n position += direction * (rNorm
* ArcSphere_sphere_radius) + ArcSphere_sphere_center;\n \n}\n\n\r\n\r\n#if
HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
* ArcSphere_sphere_radius) + ArcSphere_sphere_center;\n \n}\n\n\r\n\r\n//
Due to a bug in HLSL compiler, disable spurious \"unitialized variable\" due
to mid function return statement\r\n#pragma warning(push)\r\n#pragma warning(disable
: 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

with strip\r\n#endif\r\n \r\n {\n SetAttribute_F01429A3(
/*inout */attributes.lifetime, /*inout */attributes.seed, (float)2.5, (float)3.5);\n
}\n SetAttribute_FDD06EC7( /*inout */attributes.color, Color_b);\n
{\n uint tmp_bg = attributes.particleId ^ asuint(uniform_e);\n
float tmp_bh = FixedRand(tmp_bg);\n float tmp_bi = uniform_d * tmp_bh;\n
float tmp_bj = uniform_c + tmp_bi;\n float3 tmp_bk = float3(tmp_bj,
tmp_bj, tmp_bj);\n float3 tmp_bl = tmp_bk * uniform_f;\n
{\n uint tmp_bg = attributes.particleId ^ asuint(uniform_c);\n
float tmp_bh = FixedRand(tmp_bg);\n float tmp_bi = uniform_b * tmp_bh;\n
float tmp_bj = uniform_a + tmp_bi;\n float3 tmp_bk = float3(tmp_bj,
tmp_bj, tmp_bj);\n float3 tmp_bl = tmp_bk * uniform_d;\n
tmp_bq);\n float3 tmp_bs = tmp_br * uniform_g;\n float2
tmp_bq);\n float3 tmp_bs = tmp_br * uniform_e;\n float2
float tmp_bx = tmp_bw * uniform_i;\n float tmp_by = uniform_h +
float tmp_bx = tmp_bw * uniform_g;\n float tmp_by = uniform_f +
tmp_bx;\n PositionSphere_18D( /*inout */attributes.position, /*inout
*/attributes.seed, /*inout */attributes.direction, tmp_bs, tmp_by, (float)6.28318548,
(float)0);\n }\n \n\r\n\t\t\r\n#if VFX_USE_ALIVE_CURRENT\r\n

VFX_USE_AGE_CURRENT 1\n#define VFX_USE_MASS_CURRENT 1\n#define VFX_USE_ALIVE_CURRENT
1\n#define VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float4x4 InvFieldTransform_b;\n float4x4 FieldTransform_b;\n float4x4
InvFieldTransform_c;\n float4x4 FieldTransform_c;\n float3 uniform_e;\n
float uniform_b;\n float3 uniform_f;\n float uniform_c;\n float uniform_d;\n
float uniform_g;\n float uniform_h;\n uint PADDING_0;\nCBUFFER_END\n\nstruct
InvFieldTransform_c;\n float4x4 FieldTransform_c;\n float3 uniform_d;\n
float uniform_a;\n float3 uniform_e;\n float uniform_b;\n float uniform_c;\n
float uniform_f;\n float uniform_g;\n uint PADDING_0;\nCBUFFER_END\n\nstruct
VectorField_b_TexelSize;\nTexture3D VectorField_c;\nSamplerState samplerVectorField_c;\nfloat4
VectorField_c_TexelSize;\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT
VectorField_b_TexelSize;\n\nTexture3D VectorField_c;\nSamplerState samplerVectorField_c;\nfloat4
VectorField_c_TexelSize;\n\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT
&& !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer attributeBuffer;\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint>
deadListOut;\r\n#endif\r\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\nRWStructuredBuffer<uint>
indirectBuffer;\r\n#endif\r\n\r\n#if HAS_STRIPS\r\nRWBuffer<uint> stripDataBuffer;\r\n#endif\r\n\r\n#if

= attributes.position;\r\n#endif\r\n#if HAS_STRIPS\r\n const StripData
stripData = GetStripDataFromParticleIndex(index, PARTICLE_PER_STRIP_COUNT);\r\n
InitStripAttributes(index, attributes, stripData);\r\n#endif\r\n\t\t\t\r\n\t\t\t{\n\t\t\t
uint tmp_bl = attributes.particleId ^ asuint(uniform_d);\n\t\t\t float tmp_bm
= FixedRand(tmp_bl);\n\t\t\t float tmp_bn = uniform_c * tmp_bm;\n\t\t\t
float tmp_bo = uniform_b + tmp_bn;\n\t\t\t float3 tmp_bp = float3(tmp_bo,
tmp_bo, tmp_bo);\n\t\t\t float3 tmp_bq = tmp_bp * uniform_e;\n\t\t\t
uint tmp_bl = attributes.particleId ^ asuint(uniform_c);\n\t\t\t float tmp_bm
= FixedRand(tmp_bl);\n\t\t\t float tmp_bn = uniform_b * tmp_bm;\n\t\t\t
float tmp_bo = uniform_a + tmp_bn;\n\t\t\t float3 tmp_bp = float3(tmp_bo,
tmp_bo, tmp_bo);\n\t\t\t float3 tmp_bq = tmp_bp * uniform_d;\n\t\t\t
tmp_bv);\n\t\t\t float3 tmp_bx = tmp_bw * uniform_f;\n\t\t\t float2 tmp_ca
tmp_bv);\n\t\t\t float3 tmp_bx = tmp_bw * uniform_e;\n\t\t\t float2 tmp_ca
tmp_cc = tmp_cb * uniform_h;\n\t\t\t float tmp_cd = uniform_g + tmp_cc;\n\t\t\t
tmp_cc = tmp_cb * uniform_g;\n\t\t\t float tmp_cd = uniform_f + tmp_cc;\n\t\t\t
(float)0, (float)0, uniform_c, (float)1, (float)0);\n\t\t\t}\n\t\t\t{\n\t\t\t
(float)0, (float)0, uniform_b, (float)1, (float)0);\n\t\t\t}\n\t\t\t{\n\t\t\t
(float)8, (float)1, uniform_c);\n\t\t\t}\n\t\t\t{\n\t\t\t VectorFieldForce_267A9(
(float)8, (float)1, uniform_b);\n\t\t\t}\n\t\t\t{\n\t\t\t VectorFieldForce_267A9(
uniform_c);\n\t\t\t}\n\t\t\tEulerIntegration( /*inout */attributes.position,
attributes.velocity, uniform_c);\n\t\t\tAge( /*inout */attributes.age, uniform_c);\n\t\t\tReap(attributes.age,
uniform_b);\n\t\t\t}\n\t\t\tEulerIntegration( /*inout */attributes.position,
attributes.velocity, uniform_b);\n\t\t\tAge( /*inout */attributes.age, uniform_b);\n\t\t\tReap(attributes.age,
attributes.lifetime, /*inout */attributes.alive);\n\t\t\t\n\r\n\r\n\t\t\tif
(attributes.alive)\r\n\t\t\t{\r\n\t\t\t\tattributeBuffer.Store3((index * 0x8
+ 0xCDFF80) << 2,asuint(attributes.position));\n\t\t\t\tattributeBuffer.Store3((index

= attributes.position;\r\n#endif\r\n#if HAS_STRIPS\r\n const StripData
stripData = GetStripDataFromParticleIndex(index, PARTICLE_PER_STRIP_COUNT);\r\n
InitStripAttributes(index, attributes, stripData);\r\n#endif\r\n\t\t\r\n\t\t{\n\t\t
uint tmp_bl = attributes.particleId ^ asuint(uniform_d);\n\t\t float tmp_bm
= FixedRand(tmp_bl);\n\t\t float tmp_bn = uniform_c * tmp_bm;\n\t\t float
tmp_bo = uniform_b + tmp_bn;\n\t\t float3 tmp_bp = float3(tmp_bo, tmp_bo,
tmp_bo);\n\t\t float3 tmp_bq = tmp_bp * uniform_e;\n\t\t float3 tmp_br
uint tmp_bl = attributes.particleId ^ asuint(uniform_c);\n\t\t float tmp_bm
= FixedRand(tmp_bl);\n\t\t float tmp_bn = uniform_b * tmp_bm;\n\t\t float
tmp_bo = uniform_a + tmp_bn;\n\t\t float3 tmp_bp = float3(tmp_bo, tmp_bo,
tmp_bo);\n\t\t float3 tmp_bq = tmp_bp * uniform_d;\n\t\t float3 tmp_br
* uniform_f;\n\t\t float2 tmp_ca = GenerateValueNoise(tmp_bo, float3(7,
* uniform_e;\n\t\t float2 tmp_ca = GenerateValueNoise(tmp_bo, float3(7,
tmp_cb = tmp_ca[0];\n\t\t float tmp_cc = tmp_cb * uniform_h;\n\t\t float
tmp_cd = uniform_g + tmp_cc;\n\t\t CollisionSphere_0( /*inout */attributes.position,
tmp_cb = tmp_ca[0];\n\t\t float tmp_cc = tmp_cb * uniform_g;\n\t\t float
tmp_cd = uniform_f + tmp_cc;\n\t\t CollisionSphere_0( /*inout */attributes.position,
tmp_bx, tmp_cd, (float)1.89999998, (float)0, (float)0, uniform_c, (float)1,
tmp_bx, tmp_cd, (float)1.89999998, (float)0, (float)0, uniform_b, (float)1,
InvFieldTransform_b, FieldTransform_b, (float)8, (float)1, uniform_c);\n\t\t}\n\t\t{\n\t\t
InvFieldTransform_b, FieldTransform_b, (float)8, (float)1, uniform_b);\n\t\t}\n\t\t{\n\t\t
(float)1, (float)4, uniform_c);\n\t\t}\n\t\tEulerIntegration( /*inout */attributes.position,
attributes.velocity, uniform_c);\n\t\tAge( /*inout */attributes.age, uniform_c);\n\t\tReap(attributes.age,
(float)1, (float)4, uniform_b);\n\t\t}\n\t\tEulerIntegration( /*inout */attributes.position,
attributes.velocity, uniform_b);\n\t\tAge( /*inout */attributes.age, uniform_b);\n\t\tReap(attributes.age,
attributes.lifetime, /*inout */attributes.alive);\n\t\t\n\r\n\t\tattributeBuffer.Store3((index
* 0x8 + 0xCDFF80) << 2,asuint(attributes.position));\n\t\tattributeBuffer.Store3((index
* 0x8 + 0xCDFF84) << 2,asuint(attributes.velocity));\n\t\tattributeBuffer.Store((index

name: '[System 1]Output Particle Quad'
source: "Shader \"Hidden/VFX/UnityLogo/System 1/Output Particle Quad\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\"
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
SrcAlpha One \n\t\tBlend 1 SrcAlpha OneMinusSrcAlpha\n\t\tZTest LEqual\n\t\tZWrite
Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define NB_THREADS_PER_GROUP
64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL (0)\n\t\t#define

1\n\t\t#define VFX_USE_SCALEZ_CURRENT 1\n\t\t#define VFX_COLORMAPPING_DEFAULT
1\n\t\t#define IS_TRANSPARENT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_ADD 1\n\t\t#define
WRITE_MOTION_VECTOR_IN_FORWARD 1\n\t\t#define VFX_BYPASS_EXPOSURE 1\n\t\t#define
VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
float4 uniform_c;\n\t\t float3 uniform_g;\n\t\t float Color_c;\n\t\t
float3 uniform_h;\n\t\t float uniform_d;\n\t\t float uniform_e;\n\t\t
float uniform_f;\n\t\t float uniform_i;\n\t\t float uniform_j;\n\t\t
float4 uniform_a;\n\t\t float3 uniform_e;\n\t\t float Color_c;\n\t\t
float3 uniform_f;\n\t\t float uniform_b;\n\t\t float uniform_c;\n\t\t
float uniform_d;\n\t\t float uniform_g;\n\t\t float uniform_h;\n\t\t
float currentFrameIndex;\n\t\t uint3 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float lifetime;\n\t\t float3 color;\n\t\t
float3 position;\n\t\t uint particleId;\n\t\t float3 velocity;\n\t\t

float pivotZ;\n\t\t float size;\n\t\t float scaleX;\n\t\t float scaleY;\n\t\t
float scaleZ;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

* (float)0.5;\n\t\t\t\t float tmp_bu = max(tmp_bs, (float)0.00499999989);\n\t\t\t\t
float2 tmp_bv = float2((float)0.100000001, tmp_bu);\n\t\t\t\t SetAttribute_D5151647(
/*inout */attributes.scaleX, /*inout */attributes.scaleY, tmp_bv);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
uint tmp_bj = attributes.particleId ^ asuint(uniform_f);\n\t\t\t\t float
tmp_bk = FixedRand(tmp_bj);\n\t\t\t\t float tmp_bl = uniform_e * tmp_bk;\n\t\t\t\t
float tmp_bm = uniform_d + tmp_bl;\n\t\t\t\t float3 tmp_bn = float3(tmp_bm,
tmp_bm, tmp_bm);\n\t\t\t\t float3 tmp_bo = tmp_bn * uniform_g;\n\t\t\t\t
uint tmp_bj = attributes.particleId ^ asuint(uniform_d);\n\t\t\t\t float
tmp_bk = FixedRand(tmp_bj);\n\t\t\t\t float tmp_bl = uniform_c * tmp_bk;\n\t\t\t\t
float tmp_bm = uniform_b + tmp_bl;\n\t\t\t\t float3 tmp_bn = float3(tmp_bm,
tmp_bm, tmp_bm);\n\t\t\t\t float3 tmp_bo = tmp_bn * uniform_e;\n\t\t\t\t
tmp_bt);\n\t\t\t\t float3 tmp_bv = tmp_bu * uniform_h;\n\t\t\t\t float3
tmp_bt);\n\t\t\t\t float3 tmp_bv = tmp_bu * uniform_f;\n\t\t\t\t float3
tmp_bw = attributes.position - tmp_bv;\n\t\t\t\t float3 tmp_bx = tmp_bw
* tmp_bw;\n\t\t\t\t float tmp_by = tmp_bx[2];\n\t\t\t\t float tmp_bz
= tmp_bx[1];\n\t\t\t\t float tmp_ca = tmp_by + tmp_bz;\n\t\t\t\t float

float tmp_ci = tmp_ch[0];\n\t\t\t\t float tmp_cj = tmp_ci * uniform_j;\n\t\t\t\t
float tmp_ck = uniform_i + tmp_cj;\n\t\t\t\t float tmp_cl = tmp_ce - tmp_ck;\n\t\t\t\t
float tmp_cm = SampleCurve(uniform_c,tmp_cl);\n\t\t\t\t AttributeFromCurve_9C2DDDB5(
float tmp_ci = tmp_ch[0];\n\t\t\t\t float tmp_cj = tmp_ci * uniform_h;\n\t\t\t\t
float tmp_ck = uniform_g + tmp_cj;\n\t\t\t\t float tmp_cl = tmp_ce - tmp_ck;\n\t\t\t\t
float tmp_cm = SampleCurve(uniform_a,tmp_cl);\n\t\t\t\t AttributeFromCurve_9C2DDDB5(
/*inout */attributes.color, /*inout */attributes.alpha, attributes.age, attributes.lifetime,
Color_c, tmp_cm);\n\t\t\t\t}\n\t\t\t\tSubpixelAA(attributes.position, /*inout
*/attributes.alpha, attributes.size, /*inout */attributes.scaleX, /*inout

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

* (float)0.5;\n\t\t\t\t float tmp_bu = max(tmp_bs, (float)0.00499999989);\n\t\t\t\t
float2 tmp_bv = float2((float)0.100000001, tmp_bu);\n\t\t\t\t SetAttribute_D5151647(
/*inout */attributes.scaleX, /*inout */attributes.scaleY, tmp_bv);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
uint tmp_bj = attributes.particleId ^ asuint(uniform_f);\n\t\t\t\t float
tmp_bk = FixedRand(tmp_bj);\n\t\t\t\t float tmp_bl = uniform_e * tmp_bk;\n\t\t\t\t
float tmp_bm = uniform_d + tmp_bl;\n\t\t\t\t float3 tmp_bn = float3(tmp_bm,
tmp_bm, tmp_bm);\n\t\t\t\t float3 tmp_bo = tmp_bn * uniform_g;\n\t\t\t\t
uint tmp_bj = attributes.particleId ^ asuint(uniform_d);\n\t\t\t\t float
tmp_bk = FixedRand(tmp_bj);\n\t\t\t\t float tmp_bl = uniform_c * tmp_bk;\n\t\t\t\t
float tmp_bm = uniform_b + tmp_bl;\n\t\t\t\t float3 tmp_bn = float3(tmp_bm,
tmp_bm, tmp_bm);\n\t\t\t\t float3 tmp_bo = tmp_bn * uniform_e;\n\t\t\t\t
tmp_bt);\n\t\t\t\t float3 tmp_bv = tmp_bu * uniform_h;\n\t\t\t\t float3
tmp_bt);\n\t\t\t\t float3 tmp_bv = tmp_bu * uniform_f;\n\t\t\t\t float3
tmp_bw = attributes.position - tmp_bv;\n\t\t\t\t float3 tmp_bx = tmp_bw
* tmp_bw;\n\t\t\t\t float tmp_by = tmp_bx[2];\n\t\t\t\t float tmp_bz
= tmp_bx[1];\n\t\t\t\t float tmp_ca = tmp_by + tmp_bz;\n\t\t\t\t float

float tmp_ci = tmp_ch[0];\n\t\t\t\t float tmp_cj = tmp_ci * uniform_j;\n\t\t\t\t
float tmp_ck = uniform_i + tmp_cj;\n\t\t\t\t float tmp_cl = tmp_ce - tmp_ck;\n\t\t\t\t
float tmp_cm = SampleCurve(uniform_c,tmp_cl);\n\t\t\t\t AttributeFromCurve_9C2DDDB5(
float tmp_ci = tmp_ch[0];\n\t\t\t\t float tmp_cj = tmp_ci * uniform_h;\n\t\t\t\t
float tmp_ck = uniform_g + tmp_cj;\n\t\t\t\t float tmp_cl = tmp_ce - tmp_ck;\n\t\t\t\t
float tmp_cm = SampleCurve(uniform_a,tmp_cl);\n\t\t\t\t AttributeFromCurve_9C2DDDB5(
/*inout */attributes.color, /*inout */attributes.alpha, attributes.age, attributes.lifetime,
Color_c, tmp_cm);\n\t\t\t\t}\n\t\t\t\tSubpixelAA(attributes.position, /*inout
*/attributes.alpha, attributes.size, /*inout */attributes.scaleX, /*inout

1\n#define VFX_USE_SIZE_CURRENT 1\n#define VFX_USE_SCALEX_CURRENT 1\n#define
VFX_USE_SCALEY_CURRENT 1\n#define VFX_USE_SCALEZ_CURRENT 1\n#define VFX_LOCAL_SPACE
1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float4 uniform_c;\n float3 uniform_g;\n float Color_c;\n float3 uniform_h;\n
float uniform_d;\n float uniform_e;\n float uniform_f;\n float uniform_i;\n
float uniform_j;\n float currentFrameIndex;\n uint3 PADDING_0;\nCBUFFER_END\n\nstruct
float4 uniform_a;\n float3 uniform_e;\n float Color_c;\n float3 uniform_f;\n
float uniform_b;\n float uniform_c;\n float uniform_d;\n float uniform_g;\n
float uniform_h;\n float currentFrameIndex;\n uint3 PADDING_0;\nCBUFFER_END\n\nstruct
Attributes\n{\n float lifetime;\n float3 color;\n float3 position;\n
uint particleId;\n float3 velocity;\n float age;\n float alpha;\n
bool alive;\n float3 axisX;\n float3 axisY;\n float3 axisZ;\n float

samplermainTexture;\nfloat4 mainTexture_TexelSize;\n\n\r\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n\r\nByteAddressBuffer
samplermainTexture;\nfloat4 mainTexture_TexelSize;\n\n\n\r\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n\r\nByteAddressBuffer
attributeBuffer;\r\nRWByteAddressBuffer elementToVFXBuffer;\r\n#if VFX_USE_ALIVE_CURRENT\r\nStructuredBuffer<uint>
deadListOut;\r\n#endif\r\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\nStructuredBuffer<uint>
indirectBuffer;\r\n#endif\r\n\r\nCBUFFER_START(updateParams)\r\n\tuint nbMax;\r\n\tuint

(float)0.5;\n\t\t\t float tmp_bw = max(tmp_bu, (float)0.00499999989);\n\t\t\t
float2 tmp_bx = float2((float)0.100000001, tmp_bw);\n\t\t\t SetAttribute_D5151647(
/*inout */attributes.scaleX, /*inout */attributes.scaleY, tmp_bx);\n\t\t\t}\n\t\t\t{\n\t\t\t
uint tmp_bl = attributes.particleId ^ asuint(uniform_f);\n\t\t\t float tmp_bm
= FixedRand(tmp_bl);\n\t\t\t float tmp_bn = uniform_e * tmp_bm;\n\t\t\t
float tmp_bo = uniform_d + tmp_bn;\n\t\t\t float3 tmp_bp = float3(tmp_bo,
tmp_bo, tmp_bo);\n\t\t\t float3 tmp_bq = tmp_bp * uniform_g;\n\t\t\t
uint tmp_bl = attributes.particleId ^ asuint(uniform_d);\n\t\t\t float tmp_bm
= FixedRand(tmp_bl);\n\t\t\t float tmp_bn = uniform_c * tmp_bm;\n\t\t\t
float tmp_bo = uniform_b + tmp_bn;\n\t\t\t float3 tmp_bp = float3(tmp_bo,
tmp_bo, tmp_bo);\n\t\t\t float3 tmp_bq = tmp_bp * uniform_e;\n\t\t\t
tmp_bv);\n\t\t\t float3 tmp_bx = tmp_bw * uniform_h;\n\t\t\t float3 tmp_by
tmp_bv);\n\t\t\t float3 tmp_bx = tmp_bw * uniform_f;\n\t\t\t float3 tmp_by
= attributes.position - tmp_bx;\n\t\t\t float3 tmp_bz = tmp_by * tmp_by;\n\t\t\t
float tmp_ca = tmp_bz[2];\n\t\t\t float tmp_cb = tmp_bz[1];\n\t\t\t float
tmp_cc = tmp_ca + tmp_cb;\n\t\t\t float tmp_cd = tmp_bz[0];\n\t\t\t float

float tmp_cl = tmp_ck * uniform_j;\n\t\t\t float tmp_cm = uniform_i + tmp_cl;\n\t\t\t
float tmp_cn = tmp_cg - tmp_cm;\n\t\t\t float tmp_co = SampleCurve(uniform_c,tmp_cn);\n\t\t\t
float tmp_cl = tmp_ck * uniform_h;\n\t\t\t float tmp_cm = uniform_g + tmp_cl;\n\t\t\t
float tmp_cn = tmp_cg - tmp_cm;\n\t\t\t float tmp_co = SampleCurve(uniform_a,tmp_cn);\n\t\t\t
AttributeFromCurve_9C2DDDB5( /*inout */attributes.color, /*inout */attributes.alpha,
attributes.age, attributes.lifetime, Color_c, tmp_co);\n\t\t\t}\n\t\t\tSubpixelAA(attributes.position,
/*inout */attributes.alpha, attributes.size, /*inout */attributes.scaleX,

values:
- nameId: Color_b
index: 55
- nameId: uniform_c
- nameId: uniform_a
- nameId: uniform_d
- nameId: uniform_b
- nameId: uniform_e
- nameId: uniform_c
- nameId: uniform_f
- nameId: uniform_d
- nameId: uniform_g
- nameId: uniform_e
- nameId: uniform_h
- nameId: uniform_f
- nameId: uniform_i
- nameId: uniform_g
index: 21
params:
- nameId: bounds_center

index: 2
temporaryBuffers: []
values:
- nameId: uniform_b
- nameId: uniform_a
- nameId: uniform_b
index: 3
index: 3
index: 2
index: 2
index: 5
index: 5
- nameId: uniform_f
- nameId: uniform_g
- nameId: uniform_f
- nameId: uniform_h
- nameId: uniform_g
index: 21
- nameId: InvFieldTransform_b
index: 50

values:
- nameId: Color_c
index: 44
- nameId: uniform_c
- nameId: uniform_a
- nameId: uniform_d
- nameId: uniform_b
- nameId: uniform_e
- nameId: uniform_c
- nameId: uniform_f
- nameId: uniform_d
- nameId: uniform_g
- nameId: uniform_e
- nameId: uniform_h
- nameId: uniform_f
- nameId: uniform_i
- nameId: uniform_g
- nameId: uniform_j
- nameId: uniform_h
index: 21
- nameId: currentFrameIndex
index: 46

values:
- nameId: Color_c
index: 44
- nameId: uniform_c
- nameId: uniform_a
- nameId: uniform_d
- nameId: uniform_b
- nameId: uniform_e
- nameId: uniform_c
- nameId: uniform_f
- nameId: uniform_d
- nameId: uniform_g
- nameId: uniform_e
- nameId: uniform_h
- nameId: uniform_f
- nameId: uniform_i
- nameId: uniform_g
- nameId: uniform_j
- nameId: uniform_h
index: 21
- nameId: currentFrameIndex
index: 46

572
Assets/Samples/Volumetric/Volumetric.vfx


1\n#define VFX_USE_AXISY_CURRENT 1\n#define VFX_USE_AXISZ_CURRENT 1\n#define
VFX_USE_SCALEX_CURRENT 1\n#define VFX_USE_SCALEY_CURRENT 1\n#define VFX_USE_SCALEZ_CURRENT
1\n#define VFX_USE_COLOR_CURRENT 1\n#define VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float uniform_b;\n float uniform_c;\n float uniform_d;\n uint PADDING_0;\nCBUFFER_END\n\nstruct
float uniform_a;\n float uniform_b;\n float uniform_c;\n uint PADDING_0;\nCBUFFER_END\n\nstruct
Attributes\n{\n float size;\n float3 position;\n uint seed;\n float3
direction;\n float lifetime;\n float texIndex;\n uint particleId;\n
float3 velocity;\n float age;\n float alpha;\n bool alive;\n float3

Source:Slot Random:Uniform channels:XYZ */\n{\n lifetime = lerp(A,B,RAND);\n}\nvoid
SetAttribute_CA100327(inout float texIndex, inout uint seed, float A, float
B) /*attribute:texIndex Composition:Overwrite Source:Slot Random:Uniform channels:XYZ
*/\n{\n texIndex = lerp(A,B,RAND);\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
*/\n{\n texIndex = lerp(A,B,RAND);\n}\n\n\r\n\r\n// Due to a bug in HLSL
compiler, disable spurious \"unitialized variable\" due to mid function return
statement\r\n#pragma warning(push)\r\n#pragma warning(disable : 4000)\r\n#if
HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

stripData);\r\n\t\t// TODO Change seed to be sure we're deterministic on random
with strip\r\n#endif\r\n \r\n {\n SetAttribute_3278B22F(
/*inout */attributes.size, (float)0.200000003);\n }\n {\n
uint tmp_bc = attributes.particleId ^ asuint(uniform_d);\n float
tmp_bd = FixedRand(tmp_bc);\n float tmp_be = uniform_c * tmp_bd;\n
float tmp_bf = uniform_b + tmp_be;\n float3 tmp_bg = float3(tmp_bf,
uint tmp_bc = attributes.particleId ^ asuint(uniform_c);\n float
tmp_bd = FixedRand(tmp_bc);\n float tmp_be = uniform_b * tmp_bd;\n
float tmp_bf = uniform_a + tmp_be;\n float3 tmp_bg = float3(tmp_bf,
tmp_bf, tmp_bf);\n float3 tmp_bi = tmp_bg * float3(3, 4, 5);\n
float tmp_bj = tmp_bi[0];\n float tmp_bk = sin(tmp_bj);\n
float tmp_bl = tmp_bi[1];\n float tmp_bm = cos(tmp_bl);\n

1\n#define VFX_USE_VELOCITY_CURRENT 1\n#define VFX_USE_MASS_CURRENT 1\n#define
VFX_USE_AGE_CURRENT 1\n#define VFX_USE_ALIVE_CURRENT 1\n#define VFX_LOCAL_SPACE
1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float4 uniform_b;\n float4 uniform_c;\n float3 uniform_d;\n float
deltaTime_a;\n float3 uniform_e;\n uint PADDING_0;\nCBUFFER_END\n\nstruct
float4 uniform_a;\n float4 uniform_b;\n float3 uniform_c;\n float
deltaTime_a;\n float3 uniform_d;\n uint PADDING_0;\nCBUFFER_END\n\nstruct
Attributes\n{\n float3 position;\n float lifetime;\n float3 velocity;\n
float mass;\n float age;\n bool alive;\n};\n\nstruct SourceAttributes\n{\n};\n\n\n\r\n\r\n#define
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer

= attributes.position;\r\n#endif\r\n#if HAS_STRIPS\r\n const StripData
stripData = GetStripDataFromParticleIndex(index, PARTICLE_PER_STRIP_COUNT);\r\n
InitStripAttributes(index, attributes, stripData);\r\n#endif\r\n\t\t\t\r\n\t\t\t{\n\t\t\t
float tmp_bf = SampleCurve(uniform_b,attributes.age);\n\t\t\t float tmp_bh
float tmp_bf = SampleCurve(uniform_a,attributes.age);\n\t\t\t float tmp_bh
tmp_bl.z);\n\t\t\t float tmp_bo = SampleCurve(uniform_c,attributes.age);\n\t\t\t
tmp_bl.z);\n\t\t\t float tmp_bo = SampleCurve(uniform_b,attributes.age);\n\t\t\t
tmp_bn * tmp_bp;\n\t\t\t float3 tmp_br = uniform_d - attributes.position;\n\t\t\t
tmp_bn * tmp_bp;\n\t\t\t float3 tmp_br = uniform_c - attributes.position;\n\t\t\t
float3 tmp_cb = tmp_br * tmp_ca;\n\t\t\t float3 tmp_cc = tmp_cb * uniform_e;\n\t\t\t
float3 tmp_cb = tmp_br * tmp_ca;\n\t\t\t float3 tmp_cc = tmp_cb * uniform_d;\n\t\t\t
float3 tmp_cd = tmp_bq + tmp_cc;\n\t\t\t Force_1( /*inout */attributes.velocity,
attributes.mass, tmp_cd, (float)3, deltaTime_a);\n\t\t\t}\n\t\t\tEulerIntegration(
/*inout */attributes.position, attributes.velocity, deltaTime_a);\n\t\t\tAge(

= attributes.position;\r\n#endif\r\n#if HAS_STRIPS\r\n const StripData
stripData = GetStripDataFromParticleIndex(index, PARTICLE_PER_STRIP_COUNT);\r\n
InitStripAttributes(index, attributes, stripData);\r\n#endif\r\n\t\t\r\n\t\t{\n\t\t
float tmp_bf = SampleCurve(uniform_b,attributes.age);\n\t\t float tmp_bh
float tmp_bf = SampleCurve(uniform_a,attributes.age);\n\t\t float tmp_bh
tmp_bl.z);\n\t\t float tmp_bo = SampleCurve(uniform_c,attributes.age);\n\t\t
tmp_bl.z);\n\t\t float tmp_bo = SampleCurve(uniform_b,attributes.age);\n\t\t
* tmp_bp;\n\t\t float3 tmp_br = uniform_d - attributes.position;\n\t\t
* tmp_bp;\n\t\t float3 tmp_br = uniform_c - attributes.position;\n\t\t
tmp_cb = tmp_br * tmp_ca;\n\t\t float3 tmp_cc = tmp_cb * uniform_e;\n\t\t
tmp_cb = tmp_br * tmp_ca;\n\t\t float3 tmp_cc = tmp_cb * uniform_d;\n\t\t
float3 tmp_cd = tmp_bq + tmp_cc;\n\t\t Force_1( /*inout */attributes.velocity,
attributes.mass, tmp_cd, (float)3, deltaTime_a);\n\t\t}\n\t\tEulerIntegration(
/*inout */attributes.position, attributes.velocity, deltaTime_a);\n\t\tAge(

name: '[System 1]Output Particle Lit Quad'
source: "Shader \"Hidden/VFX/Volumetric/System 1/Output Particle Lit Quad\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Geometry+450\" \"IgnoreProjector\"=\"False\"
\"RenderType\"=\"Opaque\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
\"RenderType\"=\"Opaque\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
LEqual\n\t\tZWrite On\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

1\n\t\t#define HDRP_MULTIPLY_THICKNESS_WITH_ALPHA 1\n\t\t#define HDRP_USE_BASE_COLOR_MAP
1\n\t\t#define HDRP_USE_BASE_COLOR_MAP_ALPHA 1\n\t\t#define USE_NORMAL_MAP
1\n\t\t#define HDRP_USE_BASE_COLOR 1\n\t\t#define IS_OPAQUE_NOT_SIMPLE_LIT_PARTICLE
1\n\t\t#define FORCE_NORMAL_VARYING 1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
1\n\t\t#define FORCE_NORMAL_VARYING 1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
float4 uniform_b;\n\t\t float currentFrameIndex;\n\t\t uint3 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
float4 uniform_a;\n\t\t float currentFrameIndex;\n\t\t uint3 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float size;\n\t\t float3 position;\n\t\t float
lifetime;\n\t\t float texIndex;\n\t\t float3 velocity;\n\t\t float
age;\n\t\t float alpha;\n\t\t bool alive;\n\t\t float3 axisX;\n\t\t

scaleZ;\n\t\t float3 color;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
baseColorMap;\n\t\tSamplerState samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\tTexture2D
normalMap;\n\t\tSamplerState samplernormalMap;\n\t\tfloat4 normalMap_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
baseColorMap;\n\t\tSamplerState samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\t\n\t\tTexture2D
normalMap;\n\t\tSamplerState samplernormalMap;\n\t\tfloat4 normalMap_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

instanceID : SV_InstanceID;\n\t\t\t#define VFX_GET_INSTANCE_ID(i) i.instanceID\n\t\t#endif\n\t\t\n\t\tENDHLSL\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
{ \"LightMode\"=\"SceneSelectionPass\" }\n\t\t\n\t\t\tZWrite On\n\t\t\tBlend
Off\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#define VFX_PASSDEPTH VFX_PASSDEPTH_SELECTION\n\t\t\t#pragma
target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t#pragma multi_compile _
WRITE_NORMAL_BUFFER\n\t\t\t\n\t\t\t#define NEEDS_NORMAL\tdefined(WRITE_NORMAL_BUFFER)
target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t\n\t\t\t#define NEEDS_NORMAL\tdefined(WRITE_NORMAL_BUFFER)
|| FORCE_NORMAL_VARYING || SHADERGRAPH_NEEDS_NORMAL_DEPTHONLY\n\t\t\t#define
NEEDS_TANGENT\tUSE_NORMAL_MAP || USE_NORMAL_BENDING || SHADERGRAPH_NEEDS_TANGENT_DEPTHONLY\n\t\t\t\n\t\t\tstruct
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4

float3(0.449999988, 1.20000005, 0.5));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t SetAttribute_FDD06EC7(
/*inout */attributes.color, float3(0.660377383, 0.660377383, 0.660377383));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
float tmp_bd = attributes.age / attributes.lifetime;\n\t\t\t\t float tmp_be
= SampleCurve(uniform_b,tmp_bd);\n\t\t\t\t float tmp_bg = tmp_be * (float)0.400000006;\n\t\t\t\t
= SampleCurve(uniform_a,tmp_bd);\n\t\t\t\t float tmp_bg = tmp_be * (float)0.400000006;\n\t\t\t\t
SetAttribute_3278B22F( /*inout */attributes.size, tmp_bg);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
CameraFade_18F(attributes.position, /*inout */attributes.alpha, /*inout */attributes.alive,
(float)0.5, (float)0.666666687);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\n\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t\t{\n\t\t\t\t
\n\t\t\t\t diffusionProfileHash = (uint)1078544746;\n\t\t\t\t}\n\t\t\t\t\n
// Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\n\t\t\t\tfloat
alpha;\n\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\n\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t //TODO: investigate why this is needed\n\t\t\t preLightData.coatPartLambdaV
= 0;\n\t\t\t preLightData.coatIblR = 0;\n\t\t\t preLightData.coatIblF
= 0;\n\t\t\t \n\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t}\n\t\t\t\n\t\t\tvoid
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t#define SHADERPASS
SHADERPASS_MOTION_VECTORS\n\t\t\t\t\t#else\n\t\t\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\tvoid VFXGetHDRPLitData(out SurfaceData
surfaceData, out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData
preLightData, VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData,
uint2 tileIndex)\n\t\t\t\t\t{\t\n\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t\tuint
diffusionProfileHash = (uint)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t
diffusionProfileHash = (uint)1078544746;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t
// Loads diffusion profile\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha;\n\t\t\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\t\t\n\t\t\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\t\t\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t //TODO: investigate why this is needed\n\t\t\t\t\t
preLightData.coatPartLambdaV = 0;\n\t\t\t\t\t preLightData.coatIblR = 0;\n\t\t\t\t\t
preLightData.coatIblF = 0;\n\t\t\t\t\t \n\t\t\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvoid
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t{\n\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t}\n\t\t\t\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t
\n\t\t\t#pragma fragment frag\n\t\t\tvoid frag(ps_input i\n\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t,
bool frontFace : SV_IsFrontFace\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t, out float4 outMotionVector : SV_Target0\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target1\n\t\t\t\t#endif\n\t\t\t#else\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t, out float4 outColor :
SV_Target0\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t\t)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\tconst VFXUVData uvData
= GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\tfloat3 bitangentWS = cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\tbitangentWS = cross(tangentWS,normalWS);\n\t\t\t\t\t\t\ttangentWS
*= faceMul;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3x3 tbn
= float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t \n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t
float alpha = VFXGetFragmentColor(i).a;\n\t\t\t #if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t
alpha *= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t
#endif\n\t\t\t #endif\n\t\t\t VFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t
#else\n\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t normalWS = mul(n,tbn);\n\t\t\t
#endif\n\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t
\n\t\t\t surface.normalWS = normalWS;\n\t\t\t \n\t\t\t
EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface), i.VFX_VARYING_POSCS.xy,
outNormalBuffer);\n\t\t\t #endif\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t\t\t{\n\t\t\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t, bool frontFace
: SV_IsFrontFace\n\t\t\t\t\t#endif\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t// We need the depth color as SV_Target0 for
alpha to coverage\n\t\t\t\t\t\t, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t,
out float4 outMotionVector : SV_Target1\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target2\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t//
When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t\t, out
float4 outMotionVector : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t//
We need the depth color as SV_Target0 for alpha to coverage\n\t\t\t\t\t\t,
out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#elif
defined(WRITE_NORMAL_BUFFER)\n\t\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outColor
: SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\t\t\tconst VFXUVData
uvData = GetUVData(i);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\t\t\tfloat3 bitangentWS =
cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\t\t\tbitangentWS =
cross(tangentWS,normalWS);\n\t\t\t\t\t\t\t\t\ttangentWS *= faceMul;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t\t\t
#else\n\t\t\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t\t\t normalWS = mul(n,tbn);\n\t\t\t\t\t
#endif\n\t\t\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t\t\t
surface.normalWS = normalWS;\n\t\t\t\t\t EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface),
i.VFX_VARYING_POSCS.xy, outNormalBuffer);\n\t\t\t\t\t #endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\toutMotionVector = encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t// We use depth prepass
for scene selection in the editor, this code allow to output the outline correctly\n\t\t\t\t\toutColor
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH ==
VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t//void\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH
undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\t//
We use depth prepass for scene selection in the editor, this code allow to
output the outline correctly\n\t\t\t\t\t\t\toutColor = float4(_ObjectId, _PassValue,
1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t//void\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined\n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t#pragma target 4.5\n\t\t\t#define
UNITY_MATERIAL_LIT\n\t\t\t#pragma multi_compile _ WRITE_NORMAL_BUFFER\n\t\t\t\n\t\t\t#define
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t#pragma multi_compile _ WRITE_NORMAL_BUFFER\n\t\t\t#pragma
multi_compile _ WRITE_MSAA_DEPTH\n\t\t\t#pragma target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t\n\t\t\t#define
NEEDS_NORMAL\tdefined(WRITE_NORMAL_BUFFER) || FORCE_NORMAL_VARYING || SHADERGRAPH_NEEDS_NORMAL_DEPTHONLY\n\t\t\t#define
NEEDS_TANGENT\tUSE_NORMAL_MAP || USE_NORMAL_BENDING || SHADERGRAPH_NEEDS_TANGENT_DEPTHONLY\n\t\t\t\n\t\t\tstruct
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4

float3(0.449999988, 1.20000005, 0.5));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t SetAttribute_FDD06EC7(
/*inout */attributes.color, float3(0.660377383, 0.660377383, 0.660377383));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
float tmp_bd = attributes.age / attributes.lifetime;\n\t\t\t\t float tmp_be
= SampleCurve(uniform_b,tmp_bd);\n\t\t\t\t float tmp_bg = tmp_be * (float)0.400000006;\n\t\t\t\t
= SampleCurve(uniform_a,tmp_bd);\n\t\t\t\t float tmp_bg = tmp_be * (float)0.400000006;\n\t\t\t\t
SetAttribute_3278B22F( /*inout */attributes.size, tmp_bg);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
CameraFade_18F(attributes.position, /*inout */attributes.alpha, /*inout */attributes.alive,
(float)0.5, (float)0.666666687);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\n\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t\t{\n\t\t\t\t
\n\t\t\t\t diffusionProfileHash = (uint)1078544746;\n\t\t\t\t}\n\t\t\t\t\n
// Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\n\t\t\t\tfloat
alpha;\n\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\n\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t //TODO: investigate why this is needed\n\t\t\t preLightData.coatPartLambdaV
= 0;\n\t\t\t preLightData.coatIblR = 0;\n\t\t\t preLightData.coatIblF
= 0;\n\t\t\t \n\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t}\n\t\t\t\n\t\t\tvoid
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t#define SHADERPASS
SHADERPASS_MOTION_VECTORS\n\t\t\t\t\t#else\n\t\t\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\tvoid VFXGetHDRPLitData(out SurfaceData
surfaceData, out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData
preLightData, VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData,
uint2 tileIndex)\n\t\t\t\t\t{\t\n\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t\tuint
diffusionProfileHash = (uint)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t
diffusionProfileHash = (uint)1078544746;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t
// Loads diffusion profile\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha;\n\t\t\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\t\t\n\t\t\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\t\t\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t //TODO: investigate why this is needed\n\t\t\t\t\t
preLightData.coatPartLambdaV = 0;\n\t\t\t\t\t preLightData.coatIblR = 0;\n\t\t\t\t\t
preLightData.coatIblF = 0;\n\t\t\t\t\t \n\t\t\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvoid
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t{\n\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t}\n\t\t\t\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t
\n\t\t\t#pragma fragment frag\n\t\t\tvoid frag(ps_input i\n\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t,
bool frontFace : SV_IsFrontFace\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t, out float4 outMotionVector : SV_Target0\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target1\n\t\t\t\t#endif\n\t\t\t#else\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t, out float4 outColor :
SV_Target0\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t\t)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\tconst VFXUVData uvData
= GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\tfloat3 bitangentWS = cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\tbitangentWS = cross(tangentWS,normalWS);\n\t\t\t\t\t\t\ttangentWS
*= faceMul;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3x3 tbn
= float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t \n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t
float alpha = VFXGetFragmentColor(i).a;\n\t\t\t #if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t
alpha *= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t
#endif\n\t\t\t #endif\n\t\t\t VFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t
#else\n\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t normalWS = mul(n,tbn);\n\t\t\t
#endif\n\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t
\n\t\t\t surface.normalWS = normalWS;\n\t\t\t \n\t\t\t
EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface), i.VFX_VARYING_POSCS.xy,
outNormalBuffer);\n\t\t\t #endif\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t\t\t{\n\t\t\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t, bool frontFace
: SV_IsFrontFace\n\t\t\t\t\t#endif\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t// We need the depth color as SV_Target0 for
alpha to coverage\n\t\t\t\t\t\t, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t,
out float4 outMotionVector : SV_Target1\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target2\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t//
When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t\t, out
float4 outMotionVector : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t//
We need the depth color as SV_Target0 for alpha to coverage\n\t\t\t\t\t\t,
out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#elif
defined(WRITE_NORMAL_BUFFER)\n\t\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outColor
: SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\t\t\tconst VFXUVData
uvData = GetUVData(i);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\t\t\tfloat3 bitangentWS =
cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\t\t\tbitangentWS =
cross(tangentWS,normalWS);\n\t\t\t\t\t\t\t\t\ttangentWS *= faceMul;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t\t\t
#else\n\t\t\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t\t\t normalWS = mul(n,tbn);\n\t\t\t\t\t
#endif\n\t\t\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t\t\t
surface.normalWS = normalWS;\n\t\t\t\t\t EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface),
i.VFX_VARYING_POSCS.xy, outNormalBuffer);\n\t\t\t\t\t #endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\toutMotionVector = encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t// We use depth prepass
for scene selection in the editor, this code allow to output the outline correctly\n\t\t\t\t\toutColor
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH ==
VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t//void\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH
undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\t//
We use depth prepass for scene selection in the editor, this code allow to
output the outline correctly\n\t\t\t\t\t\t\toutColor = float4(_ObjectId, _PassValue,
1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t//void\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined\n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#pragma target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t#pragma
multi_compile _ WRITE_NORMAL_BUFFER\n\t\t\t\n\t\t\t#define NEEDS_NORMAL\tdefined(WRITE_NORMAL_BUFFER)
|| FORCE_NORMAL_VARYING || SHADERGRAPH_NEEDS_NORMAL_DEPTHONLY\n\t\t\t#define
VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#pragma multi_compile _ WRITE_NORMAL_BUFFER\n\t\t\t#pragma
multi_compile _ WRITE_MSAA_DEPTH\n\t\t\t#pragma target 4.5\n\t\t\t#define UNITY_MATERIAL_LIT\n\t\t\t\n\t\t\t#define
NEEDS_NORMAL\tdefined(WRITE_NORMAL_BUFFER) || FORCE_NORMAL_VARYING || SHADERGRAPH_NEEDS_NORMAL_DEPTHONLY\n\t\t\t#define
NEEDS_TANGENT\tUSE_NORMAL_MAP || USE_NORMAL_BENDING || SHADERGRAPH_NEEDS_TANGENT_DEPTHONLY\n\t\t\t\n\t\t\tstruct
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if USE_FLIPBOOK_INTERPOLATION\n\t\t\t\tfloat4
uv : TEXCOORD0;\n\t\t\t\t#else\n\t\t\t\tfloat2 uv : TEXCOORD0;\t\n\t\t\t\t#endif\n\t\t\t\t#if

float3(0.449999988, 1.20000005, 0.5));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t SetAttribute_FDD06EC7(
/*inout */attributes.color, float3(0.660377383, 0.660377383, 0.660377383));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
float tmp_bd = attributes.age / attributes.lifetime;\n\t\t\t\t float tmp_be
= SampleCurve(uniform_b,tmp_bd);\n\t\t\t\t float tmp_bg = tmp_be * (float)0.400000006;\n\t\t\t\t
= SampleCurve(uniform_a,tmp_bd);\n\t\t\t\t float tmp_bg = tmp_be * (float)0.400000006;\n\t\t\t\t
SetAttribute_3278B22F( /*inout */attributes.size, tmp_bg);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
CameraFade_18F(attributes.position, /*inout */attributes.alpha, /*inout */attributes.alive,
(float)0.5, (float)0.666666687);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\n\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t\t{\n\t\t\t\t
\n\t\t\t\t diffusionProfileHash = (uint)1078544746;\n\t\t\t\t}\n\t\t\t\t\n
// Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\n\t\t\t\tfloat
alpha;\n\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\n\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t //TODO: investigate why this is needed\n\t\t\t preLightData.coatPartLambdaV
= 0;\n\t\t\t preLightData.coatIblR = 0;\n\t\t\t preLightData.coatIblF
= 0;\n\t\t\t \n\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t}\n\t\t\t\n\t\t\tvoid
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t#define SHADERPASS
SHADERPASS_MOTION_VECTORS\n\t\t\t\t\t#else\n\t\t\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t\t\t#endif\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLit.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\tvoid VFXGetHDRPLitData(out SurfaceData
surfaceData, out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData
preLightData, VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData,
uint2 tileIndex)\n\t\t\t\t\t{\t\n\t\t\t\t\t\t#if HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t\tuint
diffusionProfileHash = (uint)0;\n\t\t\t\t\t\t{\n\t\t\t\t\t\t \n\t\t\t\t\t\t
diffusionProfileHash = (uint)1078544746;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t
// Loads diffusion profile\n\t\t\t\t\t\t#else\n\t\t\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha;\n\t\t\t\t\t\tsurfaceData = VFXGetSurfaceData(i,normalWS,uvData,diffusionProfileHash,alpha);\t\n\t\t\t\t\t\tbsdfData
= ConvertSurfaceDataToBSDFData(posSS.xy, surfaceData);\n\t\t\t\t\t\n\t\t\t\t\t\tpreLightData
= GetPreLightData(GetWorldSpaceNormalizeViewDir(posRWS),posInput,bsdfData);\n\t\t\t\t\t\t\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t //TODO: investigate why this is needed\n\t\t\t\t\t
preLightData.coatPartLambdaV = 0;\n\t\t\t\t\t preLightData.coatIblR = 0;\n\t\t\t\t\t
preLightData.coatIblF = 0;\n\t\t\t\t\t \n\t\t\t\t\t\tbuiltinData = VFXGetBuiltinData(i,posInput,surfaceData,uvData,alpha);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvoid
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t{\n\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t}\n\t\t\t\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t
\n\t\t\t#pragma fragment frag\n\t\t\tvoid frag(ps_input i\n\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t,
bool frontFace : SV_IsFrontFace\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t, out float4 outMotionVector : SV_Target0\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target1\n\t\t\t\t#endif\n\t\t\t#else\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t, out float4 outColor :
SV_Target0\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t\t\t)\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\n\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\tconst VFXUVData uvData
= GetUVData(i);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\tfloat3 bitangentWS = cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\tbitangentWS = cross(tangentWS,normalWS);\n\t\t\t\t\t\t\ttangentWS
*= faceMul;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tfloat3x3 tbn
= float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t \n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t
float alpha = VFXGetFragmentColor(i).a;\n\t\t\t #if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t
alpha *= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t
#endif\n\t\t\t #endif\n\t\t\t VFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t
#else\n\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t normalWS = mul(n,tbn);\n\t\t\t
#endif\n\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t
\n\t\t\t surface.normalWS = normalWS;\n\t\t\t \n\t\t\t
EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface), i.VFX_VARYING_POSCS.xy,
outNormalBuffer);\n\t\t\t #endif\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)\n\t\t\t\t\t{\n\t\t\t\t\t\tBSDFData
bsdfData = (BSDFData)0;\n\t\t\t\t\t\tPreLightData preLightData = (PreLightData)0;\n\t\t\t\t\t\tpreLightData.diffuseFGD
= 1.0f;\n\t\t\t\t\t\tVFXGetHDRPLitData(surfaceData,builtinData,bsdfData,preLightData,i,normalWS,uvData,uint2(0,0));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl\"\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t, bool frontFace
: SV_IsFrontFace\n\t\t\t\t\t#endif\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t// We need the depth color as SV_Target0 for
alpha to coverage\n\t\t\t\t\t\t, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t,
out float4 outMotionVector : SV_Target1\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target2\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t//
When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t\t, out
float4 outMotionVector : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t//
We need the depth color as SV_Target0 for alpha to coverage\n\t\t\t\t\t\t,
out float4 outDepthColor : SV_Target0\n\t\t\t\t\t\t\t#ifdef WRITE_NORMAL_BUFFER\n\t\t\t\t\t\t\t,
out float4 outNormalBuffer : SV_Target1\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#elif
defined(WRITE_NORMAL_BUFFER)\n\t\t\t\t\t\t, out float4 outNormalBuffer : SV_Target0\n\t\t\t\t\t\t#endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outColor
: SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_NORMAL\n\t\t\t\t\t\t\t\t\t#if USE_DOUBLE_SIDED\n\t\t\t\t\t\t\t\t\tconst
float faceMul = frontFace ? 1.0f : -1.0f;\n\t\t\t\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t\t\tconst
float faceMul = 1.0f;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3
normalWS = i.VFX_VARYING_NORMAL * faceMul;\n\t\t\t\t\t\t\t\t\tconst VFXUVData
uvData = GetUVData(i);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_TANGENT\n\t\t\t\t\t\t\t\t\tfloat3
tangentWS = i.VFX_VARYING_TANGENT;\n\t\t\t\t\t\t\t\t\tfloat3 bitangentWS =
cross(i.VFX_VARYING_TANGENT,i.VFX_VARYING_NORMAL);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
defined(VFX_VARYING_BENTFACTORS) && USE_NORMAL_BENDING\t\n\t\t\t\t\t\t\t\t\tfloat3
bentFactors = float3(i.VFX_VARYING_BENTFACTORS.xy,sqrt(1.0f - dot(i.VFX_VARYING_BENTFACTORS,i.VFX_VARYING_BENTFACTORS)));\n\t\t\t\t\t\t\t\t\tnormalWS
= tangentWS * bentFactors.x + bitangentWS * bentFactors.y + normalWS * bentFactors.z;\n\t\t\t\t\t\t\t\t\ttangentWS
= normalize(cross(normalWS,bitangentWS));\n\t\t\t\t\t\t\t\t\tbitangentWS =
cross(tangentWS,normalWS);\n\t\t\t\t\t\t\t\t\ttangentWS *= faceMul;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat3x3
tbn = float3x3(tangentWS,bitangentWS,normalWS);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#if
USE_NORMAL_MAP\n\t\t\t\t\t\t\t\t\tfloat3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);\n\t\t\t\t\t\t\t\t\tfloat
normalScale = 1.0f;\n\t\t\t\t\t\t\t\t\t#ifdef VFX_VARYING_NORMALSCALE\n\t\t\t\t\t\t\t\t\tnormalScale
= i.VFX_VARYING_NORMALSCALE;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tnormalWS
= normalize(lerp(normalWS,mul(n,tbn),normalScale));\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t\t\n\t\t\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\n\t\t\t\t\t\t#if HDRP_USE_BASE_COLOR_MAP_ALPHA\n\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_NORMAL_BUFFER\n\t\t\t\t\t #ifndef VFX_SHADERGRAPH\n\t\t\t\t\t
VFXComputePixelOutputToNormalBuffer(i,normalWS,uvData,outNormalBuffer);\n\t\t\t\t\t
#else\n\t\t\t\t\t #if HAS_SHADERGRAPH_PARAM_NORMAL\n\t\t\t\t\t
float3 n = OUTSG.Normal_8;\n\t\t\t\t\t normalWS = mul(n,tbn);\n\t\t\t\t\t
#endif\n\t\t\t\t\t SurfaceData surface = (SurfaceData)0;\n\t\t\t\t\t
surface.normalWS = normalWS;\n\t\t\t\t\t EncodeIntoNormalBuffer(ConvertSurfaceDataToNormalData(surface),
i.VFX_VARYING_POSCS.xy, outNormalBuffer);\n\t\t\t\t\t #endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\toutMotionVector = encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t// We use depth prepass
for scene selection in the editor, this code allow to output the outline correctly\n\t\t\t\t\toutColor
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH ==
VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t//void\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH
undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\t//
We use depth prepass for scene selection in the editor, this code allow to
output the outline correctly\n\t\t\t\t\t\t\toutColor = float4(_ObjectId, _PassValue,
1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t//void\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined\n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
{ \"LightMode\"=\"GBuffer\" }\n\t\t\n\t\t Stencil\n\t\t {\n\t\t WriteMask
6\n\t\t Ref 2\n\t\t Comp Always\n\t\t Pass Replace\n\t\t }\n\n\t\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma
target 4.5\n\t\t\t\n\t\t\t#pragma multi_compile _ LIGHT_LAYERS\n\t\t\t#pragma

float3(0.449999988, 1.20000005, 0.5));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t SetAttribute_FDD06EC7(
/*inout */attributes.color, float3(0.660377383, 0.660377383, 0.660377383));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
float tmp_bd = attributes.age / attributes.lifetime;\n\t\t\t\t float tmp_be
= SampleCurve(uniform_b,tmp_bd);\n\t\t\t\t float tmp_bg = tmp_be * (float)0.400000006;\n\t\t\t\t
= SampleCurve(uniform_a,tmp_bd);\n\t\t\t\t float tmp_bg = tmp_be * (float)0.400000006;\n\t\t\t\t
SetAttribute_3278B22F( /*inout */attributes.size, tmp_bg);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
CameraFade_18F(attributes.position, /*inout */attributes.alpha, /*inout */attributes.alive,
(float)0.5, (float)0.666666687);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if

= specularColor;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#elif HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_THICKNESS\n\t\t\t\t\t\t\t\t\tfloat thickness = (float)0;\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t
float tmp_be = attributes.age / attributes.lifetime;\n\t\t\t\t\t\t\t\t\t
float tmp_bf = SampleCurve(uniform_b,tmp_be);\n\t\t\t\t\t\t\t\t\t float
float tmp_bf = SampleCurve(uniform_a,tmp_be);\n\t\t\t\t\t\t\t\t\t float
tmp_bg = (float)1 - tmp_bf;\n\t\t\t\t\t\t\t\t\t float tmp_bi = max(tmp_bg,
(float)0);\n\t\t\t\t\t\t\t\t\t float tmp_bj = min(tmp_bi, (float)1);\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t thickness = tmp_bj;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\to.VFX_VARYING_THICKNESS

float3(0.449999988, 1.20000005, 0.5));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t SetAttribute_FDD06EC7(
/*inout */attributes.color, float3(0.660377383, 0.660377383, 0.660377383));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
float tmp_bd = attributes.age / attributes.lifetime;\n\t\t\t\t float tmp_be
= SampleCurve(uniform_b,tmp_bd);\n\t\t\t\t float tmp_bg = tmp_be * (float)0.400000006;\n\t\t\t\t
= SampleCurve(uniform_a,tmp_bd);\n\t\t\t\t float tmp_bg = tmp_be * (float)0.400000006;\n\t\t\t\t
SetAttribute_3278B22F( /*inout */attributes.size, tmp_bg);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
CameraFade_18F(attributes.position, /*inout */attributes.alpha, /*inout */attributes.alive,
(float)0.5, (float)0.666666687);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if

= specularColor;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t#elif HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\t\t\t\t\t\t#ifdef
VFX_VARYING_THICKNESS\n\t\t\t\t\t\t\t\t\tfloat thickness = (float)0;\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t
float tmp_be = attributes.age / attributes.lifetime;\n\t\t\t\t\t\t\t\t\t
float tmp_bf = SampleCurve(uniform_b,tmp_be);\n\t\t\t\t\t\t\t\t\t float
float tmp_bf = SampleCurve(uniform_a,tmp_be);\n\t\t\t\t\t\t\t\t\t float
tmp_bg = (float)1 - tmp_bf;\n\t\t\t\t\t\t\t\t\t float tmp_bi = max(tmp_bg,
(float)0);\n\t\t\t\t\t\t\t\t\t float tmp_bj = min(tmp_bi, (float)1);\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t thickness = tmp_bj;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\to.VFX_VARYING_THICKNESS

VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t\t{\n\t\t\t\t
\n\t\t\t\t diffusionProfileHash = (uint)1078544746;\n\t\t\t\t}\n\t\t\t\t\n
// Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t{\n\t\t\t
\n\t\t\t diffusionProfileHash = (uint)1078544746;\n\t\t\t}\n\t\t\t\n //
Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\n\t\t\t\tfloat

float3(0.449999988, 1.20000005, 0.5));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t SetAttribute_FDD06EC7(
/*inout */attributes.color, float3(0.660377383, 0.660377383, 0.660377383));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
float tmp_bd = attributes.age / attributes.lifetime;\n\t\t\t\t float tmp_be
= SampleCurve(uniform_b,tmp_bd);\n\t\t\t\t float tmp_bg = tmp_be * (float)0.400000006;\n\t\t\t\t
= SampleCurve(uniform_a,tmp_bd);\n\t\t\t\t float tmp_bg = tmp_be * (float)0.400000006;\n\t\t\t\t
SetAttribute_3278B22F( /*inout */attributes.size, tmp_bg);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
CameraFade_18F(attributes.position, /*inout */attributes.alpha, /*inout */attributes.alive,
(float)0.5, (float)0.666666687);\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if

VFX_USE_PIVOTY_CURRENT 1\n#define VFX_USE_PIVOTZ_CURRENT 1\n#define VFX_USE_SCALEX_CURRENT
1\n#define VFX_USE_SCALEY_CURRENT 1\n#define VFX_USE_SCALEZ_CURRENT 1\n#define
VFX_USE_COLOR_CURRENT 1\n#define VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float4 uniform_b;\n float currentFrameIndex;\n uint3 PADDING_0;\nCBUFFER_END\n\nstruct
float4 uniform_a;\n float currentFrameIndex;\n uint3 PADDING_0;\nCBUFFER_END\n\nstruct
Attributes\n{\n float size;\n float3 position;\n float lifetime;\n
float3 velocity;\n float age;\n float alpha;\n bool alive;\n float3
axisX;\n float3 axisY;\n float3 axisZ;\n float angleX;\n float

samplerbaseColorMap;\nfloat4 baseColorMap_TexelSize;\nTexture2D normalMap;\nSamplerState
samplernormalMap;\nfloat4 normalMap_TexelSize;\n\n\r\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n\r\nByteAddressBuffer
samplerbaseColorMap;\nfloat4 baseColorMap_TexelSize;\n\nTexture2D normalMap;\nSamplerState
samplernormalMap;\nfloat4 normalMap_TexelSize;\n\n\n\r\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n\r\nByteAddressBuffer
attributeBuffer;\r\nRWByteAddressBuffer elementToVFXBuffer;\r\n#if VFX_USE_ALIVE_CURRENT\r\nStructuredBuffer<uint>
deadListOut;\r\n#endif\r\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\nStructuredBuffer<uint>
indirectBuffer;\r\n#endif\r\n\r\nCBUFFER_START(updateParams)\r\n\tuint nbMax;\r\n\tuint

float3(0.449999988, 1.20000005, 0.5));\n\t\t\t}\n\t\t\t{\n\t\t\t SetAttribute_FDD06EC7(
/*inout */attributes.color, float3(0.660377383, 0.660377383, 0.660377383));\n\t\t\t}\n\t\t\t{\n\t\t\t
float tmp_bf = attributes.age / attributes.lifetime;\n\t\t\t float tmp_bg
= SampleCurve(uniform_b,tmp_bf);\n\t\t\t float tmp_bi = tmp_bg * (float)0.400000006;\n\t\t\t
= SampleCurve(uniform_a,tmp_bf);\n\t\t\t float tmp_bi = tmp_bg * (float)0.400000006;\n\t\t\t
SetAttribute_3278B22F( /*inout */attributes.size, tmp_bi);\n\t\t\t}\n\t\t\t{\n\t\t\t
CameraFade_18F(attributes.position, /*inout */attributes.alpha, /*inout */attributes.alive,
(float)0.5, (float)0.666666687);\n\t\t\t}\n\t\t\t\n\r\n\t\t\t\r\n\t\t\t\n\t\t\tfloat3

index: 1
temporaryBuffers: []
values:
- nameId: uniform_b
- nameId: uniform_a
- nameId: uniform_c
- nameId: uniform_b
- nameId: uniform_d
- nameId: uniform_c
index: 5
params:
- nameId: bounds_center

index: 2
temporaryBuffers: []
values:
- nameId: uniform_b
- nameId: uniform_a
- nameId: uniform_c
- nameId: uniform_b
- nameId: uniform_c
index: 2
index: 2
- nameId: uniform_e
index: 23
- nameId: deltaTime_a
index: 7

pastFrameIndex: 0
perCameraBuffer: 1
values:
- nameId: uniform_b
- nameId: uniform_a
index: 18
- nameId: currentFrameIndex
index: 38

pastFrameIndex: 1
perCameraBuffer: 1
values:
- nameId: uniform_b
- nameId: uniform_a
index: 18
- nameId: currentFrameIndex
index: 38

373
Assets/Samples/VoxelizedTerrain/VoxelizedTerrain.vfx


VFX_USE_PIVOTZ_CURRENT 1\n#define VFX_USE_SIZE_CURRENT 1\n#define VFX_USE_SCALEX_CURRENT
1\n#define VFX_USE_SCALEZ_CURRENT 1\n#define VFX_USE_COLOR_CURRENT 1\n#define
VFX_USE_SMOOTHNESS_CURRENT 1\n#define VFX_WORLD_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float3 uniform_b;\n uint PADDING_0;\n float3 uniform_c;\n uint PADDING_1;\n
float3 uniform_d;\n uint PADDING_2;\nCBUFFER_END\n\nstruct Attributes\n{\n
float3 uniform_a;\n uint PADDING_0;\n float3 uniform_b;\n uint PADDING_1;\n
float3 uniform_c;\n uint PADDING_2;\nCBUFFER_END\n\nstruct Attributes\n{\n
uint particleId;\n float3 position;\n float scaleY;\n float alpha;\n
float pivotX;\n float pivotY;\n float pivotZ;\n float size;\n float
scaleX;\n float scaleZ;\n float3 color;\n float Smoothness;\n};\n\nstruct

writeTargetPosition:False mode:Wrap */\n{\n position += computedPosition;\n
\n}\nvoid SetAttribute_D5151645(inout float scaleY, float Scale) /*attribute:scale
Composition:Overwrite Source:Slot Random:Off channels:Y */\n{\n scaleY =
Scale.x;\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
Scale.x;\n}\n\n\r\n\r\n// Due to a bug in HLSL compiler, disable spurious \"unitialized
variable\" due to mid function return statement\r\n#pragma warning(push)\r\n#pragma
warning(disable : 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint
particleIndex, uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

float3 tmp_bm = tmp_bk * float3(2, 2, 2);\n float3 tmp_bo = tmp_bm
- float3(1, 1, 1);\n float tmp_bp = tmp_bo[0];\n float3
tmp_bq = float3(tmp_bp, tmp_bp, tmp_bp);\n float3 tmp_br = tmp_bq
* uniform_c;\n float3 tmp_bs = uniform_b + tmp_br;\n
* uniform_b;\n float3 tmp_bs = uniform_a + tmp_br;\n
tmp_bt);\n float3 tmp_bv = tmp_bu * uniform_d;\n float3
tmp_bt);\n float3 tmp_bv = tmp_bu * uniform_c;\n float3
tmp_bw = tmp_bs + tmp_bv;\n PositionSequential_913D42CB(attributes.particleId,
/*inout */attributes.position, tmp_bw);\n }\n {\n
SetAttribute_D5151645( /*inout */attributes.scaleY, (float)0);\n }\n

1\n#define VFX_WORLD_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float2 uniform_b;\n float2 uniform_c;\n float uniform_d;\n float Blend_a;\n
uint2 PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n float3 position;\n
float scaleY;\n};\n\nstruct SourceAttributes\n{\n};\n\nTexture2D texture_b;\nSamplerState
samplertexture_b;\nfloat4 texture_b_TexelSize;\n\n\r\n\r\n#define USE_DEAD_LIST
float scaleY;\n};\n\nstruct SourceAttributes\n{\n};\n\nTexture2D texture_a;\nSamplerState
samplertexture_a;\nfloat4 texture_a_TexelSize;\n\n\n\r\n\r\n#define USE_DEAD_LIST
(VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer attributeBuffer;\r\n\r\n#if
USE_DEAD_LIST\r\nRWStructuredBuffer<uint> deadListOut;\r\n#endif\r\n\r\n#if
VFX_HAS_INDIRECT_DRAW\r\nRWStructuredBuffer<uint> indirectBuffer;\r\n#endif\r\n\r\n#if

float tmp_z = attributes.position[2];\n\t\t\t float2 tmp_ba = float2(tmp_y,
tmp_z);\n\t\t\t float2 tmp_bb = tmp_ba / uniform_b;\n\t\t\t float2 tmp_bc
= tmp_bb - uniform_c;\n\t\t\t float2 tmp_be = tmp_bc - float2(-1, -1);\n\t\t\t
float2 tmp_bg = tmp_be / float2(2, 2);\n\t\t\t float4 tmp_bi = SampleTexture(VFX_SAMPLER(texture_b),tmp_bg,(float)0);\n\t\t\t
float2 tmp_bg = tmp_be / float2(2, 2);\n\t\t\t float4 tmp_bi = SampleTexture(VFX_SAMPLER(texture_a),tmp_bg,(float)0);\n\t\t\t
float tmp_bj = tmp_bi[1];\n\t\t\t float tmp_bk = tmp_bj * uniform_d;\n\t\t\t
float tmp_bl = saturate(tmp_bk);\n\t\t\t SetAttribute_E0455982( /*inout
*/attributes.scaleY, tmp_bl, Blend_a);\n\t\t\t}\n\t\t\t\n\r\n\r\n\t\t\tif (attributes.alive)\r\n\t\t\t{\r\n\t\t\t\tattributeBuffer.Store((index

float tmp_z = attributes.position[2];\n\t\t float2 tmp_ba = float2(tmp_y,
tmp_z);\n\t\t float2 tmp_bb = tmp_ba / uniform_b;\n\t\t float2 tmp_bc
= tmp_bb - uniform_c;\n\t\t float2 tmp_be = tmp_bc - float2(-1, -1);\n\t\t
float2 tmp_bg = tmp_be / float2(2, 2);\n\t\t float4 tmp_bi = SampleTexture(VFX_SAMPLER(texture_b),tmp_bg,(float)0);\n\t\t
float2 tmp_bg = tmp_be / float2(2, 2);\n\t\t float4 tmp_bi = SampleTexture(VFX_SAMPLER(texture_a),tmp_bg,(float)0);\n\t\t
float tmp_bj = tmp_bi[1];\n\t\t float tmp_bk = tmp_bj * uniform_d;\n\t\t
float tmp_bl = saturate(tmp_bk);\n\t\t SetAttribute_E0455982( /*inout */attributes.scaleY,
tmp_bl, Blend_a);\n\t\t}\n\t\t\n\r\n\t\tattributeBuffer.Store((index * 0x1

name: '[System 1]Output Particle Lit Cube'
source: "Shader \"Hidden/VFX/VoxelizedTerrain/System 1/Output Particle Lit Cube\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Back\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Geometry+0\" \"IgnoreProjector\"=\"False\"
\"RenderType\"=\"Opaque\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
\"RenderType\"=\"Opaque\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tZTest
LEqual\n\t\tZWrite On\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

1\n\t\t#define HDRP_LIT 1\n\t\t#define HDRP_MATERIAL_TYPE_TRANSLUCENT 1\n\t\t#define
HDRP_USE_BASE_COLOR_MAP 1\n\t\t#define HDRP_USE_BASE_COLOR_MAP_COLOR 1\n\t\t#define
HDRP_USE_BASE_COLOR_MAP_ALPHA 1\n\t\t#define HDRP_USE_BASE_COLOR 1\n\t\t#define
IS_OPAQUE_NOT_SIMPLE_LIT_PARTICLE 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
IS_OPAQUE_NOT_SIMPLE_LIT_PARTICLE 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
float4 uniform_e;\n\t\t float Color_d;\n\t\t float uniform_c;\n\t\t
float uniform_d;\n\t\t float uniform_f;\n\t\t float currentFrameIndex;\n\t\t
float4 uniform_c;\n\t\t float Color_d;\n\t\t float uniform_a;\n\t\t
float uniform_b;\n\t\t float uniform_d;\n\t\t float currentFrameIndex;\n\t\t
uint3 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct Attributes\n\t\t{\n\t\t
float3 position;\n\t\t float scaleY;\n\t\t float alpha;\n\t\t bool
alive;\n\t\t float3 axisX;\n\t\t float3 axisY;\n\t\t float3 axisZ;\n\t\t

Smoothness;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
baseColorMap;\n\t\tSamplerState samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
baseColorMap;\n\t\tSamplerState samplerbaseColorMap;\n\t\tfloat4 baseColorMap_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

builtInInterpolants.y\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#undef VFX_USE_RIM_LIGHT\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if
!(defined(VFX_VARYING_PS_INPUTS) && defined(VFX_VARYING_POSCS))\n\t\t\t#error
VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
SetAttribute_3278B22F(inout float size, float Size) /*attribute:size Composition:Overwrite
Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t size = Size;\n\t\t\t}\n\t\t\tvoid

/*inout */attributes.pivotZ, float3(0, -0.5, 0));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
SetAttribute_D5151640( /*inout */attributes.scaleX, /*inout */attributes.scaleZ,
float2(0.00779999979, 0.00779999979));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t bool
tmp_ba = attributes.scaleY >= uniform_c;\n\t\t\t\t float tmp_bc = attributes.scaleY
- uniform_c;\n\t\t\t\t float tmp_bd = tmp_bc / uniform_d;\n\t\t\t\t float
tmp_ba = attributes.scaleY >= uniform_a;\n\t\t\t\t float tmp_bc = attributes.scaleY
- uniform_a;\n\t\t\t\t float tmp_bd = tmp_bc / uniform_b;\n\t\t\t\t float
+ tmp_bf;\n\t\t\t\t float tmp_bh = attributes.scaleY / uniform_c;\n\t\t\t\t
+ tmp_bf;\n\t\t\t\t float tmp_bh = attributes.scaleY / uniform_a;\n\t\t\t\t
bool tmp_ba = attributes.scaleY >= uniform_c;\n\t\t\t\t float tmp_bc = attributes.scaleY
- uniform_c;\n\t\t\t\t float tmp_bd = tmp_bc / uniform_d;\n\t\t\t\t float
bool tmp_ba = attributes.scaleY >= uniform_a;\n\t\t\t\t float tmp_bc = attributes.scaleY
- uniform_a;\n\t\t\t\t float tmp_bd = tmp_bc / uniform_b;\n\t\t\t\t float
+ tmp_bf;\n\t\t\t\t float tmp_bh = attributes.scaleY / uniform_c;\n\t\t\t\t
+ tmp_bf;\n\t\t\t\t float tmp_bh = attributes.scaleY / uniform_a;\n\t\t\t\t
? tmp_bg : tmp_bi;\n\t\t\t\t float tmp_bk = SampleCurve(uniform_e,tmp_bj);\n\t\t\t\t
? tmp_bg : tmp_bi;\n\t\t\t\t float tmp_bk = SampleCurve(uniform_c,tmp_bj);\n\t\t\t\t
float tmp_ba = max(attributes.scaleY, uniform_c);\n\t\t\t\t float tmp_bb
= uniform_f * tmp_ba;\n\t\t\t\t SetAttribute_D5151645( /*inout */attributes.scaleY,
float tmp_ba = max(attributes.scaleY, uniform_a);\n\t\t\t\t float tmp_bb
= uniform_d * tmp_ba;\n\t\t\t\t SetAttribute_D5151645( /*inout */attributes.scaleY,
tmp_bb);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t float tmp_bb = attributes.scaleY
/ (float)0.00779999979;\n\t\t\t\t float tmp_bc = floor(tmp_bb);\n\t\t\t\t
float tmp_bd = tmp_bc * (float)0.00779999979;\n\t\t\t\t SetAttribute_D5151645(

* float2(-i.VFX_VARYING_OFFSETS.z,1);\n\t\t\t\telse if (i.VFX_VARYING_FACEID
== 1)\n\t\t\t\t\tuv = i.VFX_VARYING_OFFSETS.xz * float2(i.VFX_VARYING_OFFSETS.y,1);\n\t\t\t\telse\n\t\t\t\t\tuv
= i.VFX_VARYING_OFFSETS.zy * float2(i.VFX_VARYING_OFFSETS.x,1);\n\t\t\t\treturn
uv * 0.5f + 0.5f;\n\t\t\t#else\n\t\t\t\treturn 0.0f;\n\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_Target0\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
uv * 0.5f + 0.5f;\n\t\t\t#else\n\t\t\t\treturn 0.0f;\n\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 0\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t//
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t//
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t#pragma target 4.5\n\t\t\t\n\t\t\tstruct
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if USE_ALPHA_TEST
|| VFX_USE_ALPHA_CURRENT\n\t\t\t\t// x: alpha\n\t\t\t\t// y: alpha threshold\n\t\t\t\tnointerpolation
float2 builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\tfloat4 cPosPrevious : TEXCOORD2;\n\t\t\t\tfloat4
cPosNonJiterred : TEXCOORD3;\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\t#define
VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL\n\t\t\t#pragma multi_compile _ WRITE_MSAA_DEPTH\n\t\t\t#pragma
target 4.5\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if
USE_ALPHA_TEST || VFX_USE_ALPHA_CURRENT\n\t\t\t\t// x: alpha\n\t\t\t\t// y:
alpha threshold\n\t\t\t\tnointerpolation float2 builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\tfloat4 cPosPrevious :
TEXCOORD2;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD3;\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\t#define
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if
!(defined(VFX_VARYING_PS_INPUTS) && defined(VFX_VARYING_POSCS))\n\t\t\t#error
VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
SetAttribute_3278B22F(inout float size, float Size) /*attribute:size Composition:Overwrite
Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t size = Size;\n\t\t\t}\n\t\t\tvoid

/*inout */attributes.pivotZ, float3(0, -0.5, 0));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
SetAttribute_D5151640( /*inout */attributes.scaleX, /*inout */attributes.scaleZ,
float2(0.00779999979, 0.00779999979));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t bool
tmp_ba = attributes.scaleY >= uniform_c;\n\t\t\t\t float tmp_bc = attributes.scaleY
- uniform_c;\n\t\t\t\t float tmp_bd = tmp_bc / uniform_d;\n\t\t\t\t float
tmp_ba = attributes.scaleY >= uniform_a;\n\t\t\t\t float tmp_bc = attributes.scaleY
- uniform_a;\n\t\t\t\t float tmp_bd = tmp_bc / uniform_b;\n\t\t\t\t float
+ tmp_bf;\n\t\t\t\t float tmp_bh = attributes.scaleY / uniform_c;\n\t\t\t\t
+ tmp_bf;\n\t\t\t\t float tmp_bh = attributes.scaleY / uniform_a;\n\t\t\t\t
bool tmp_ba = attributes.scaleY >= uniform_c;\n\t\t\t\t float tmp_bc = attributes.scaleY
- uniform_c;\n\t\t\t\t float tmp_bd = tmp_bc / uniform_d;\n\t\t\t\t float
bool tmp_ba = attributes.scaleY >= uniform_a;\n\t\t\t\t float tmp_bc = attributes.scaleY
- uniform_a;\n\t\t\t\t float tmp_bd = tmp_bc / uniform_b;\n\t\t\t\t float
+ tmp_bf;\n\t\t\t\t float tmp_bh = attributes.scaleY / uniform_c;\n\t\t\t\t
+ tmp_bf;\n\t\t\t\t float tmp_bh = attributes.scaleY / uniform_a;\n\t\t\t\t
? tmp_bg : tmp_bi;\n\t\t\t\t float tmp_bk = SampleCurve(uniform_e,tmp_bj);\n\t\t\t\t
? tmp_bg : tmp_bi;\n\t\t\t\t float tmp_bk = SampleCurve(uniform_c,tmp_bj);\n\t\t\t\t
float tmp_ba = max(attributes.scaleY, uniform_c);\n\t\t\t\t float tmp_bb
= uniform_f * tmp_ba;\n\t\t\t\t SetAttribute_D5151645( /*inout */attributes.scaleY,
float tmp_ba = max(attributes.scaleY, uniform_a);\n\t\t\t\t float tmp_bb
= uniform_d * tmp_ba;\n\t\t\t\t SetAttribute_D5151645( /*inout */attributes.scaleY,
tmp_bb);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t float tmp_bb = attributes.scaleY
/ (float)0.00779999979;\n\t\t\t\t float tmp_bc = floor(tmp_bb);\n\t\t\t\t
float tmp_bd = tmp_bc * (float)0.00779999979;\n\t\t\t\t SetAttribute_D5151645(

* float2(-i.VFX_VARYING_OFFSETS.z,1);\n\t\t\t\telse if (i.VFX_VARYING_FACEID
== 1)\n\t\t\t\t\tuv = i.VFX_VARYING_OFFSETS.xz * float2(i.VFX_VARYING_OFFSETS.y,1);\n\t\t\t\telse\n\t\t\t\t\tuv
= i.VFX_VARYING_OFFSETS.zy * float2(i.VFX_VARYING_OFFSETS.x,1);\n\t\t\t\treturn
uv * 0.5f + 0.5f;\n\t\t\t#else\n\t\t\t\treturn 0.0f;\n\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_Target0\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
uv * 0.5f + 0.5f;\n\t\t\t#else\n\t\t\t\treturn 0.0f;\n\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 0\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\tPass\n\t\t{\t\t\n\t\t\tTags
VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#pragma target 4.5\n\t\t\t\n\t\t\tstruct
ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if USE_ALPHA_TEST
|| VFX_USE_ALPHA_CURRENT\n\t\t\t\t// x: alpha\n\t\t\t\t// y: alpha threshold\n\t\t\t\tnointerpolation
float2 builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\tfloat4 cPosPrevious : TEXCOORD2;\n\t\t\t\tfloat4
cPosNonJiterred : TEXCOORD3;\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\t#define
VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#pragma multi_compile _ WRITE_MSAA_DEPTH\n\t\t\t#pragma
target 4.5\n\t\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos : SV_POSITION;\n\t\t\t\t#if
USE_ALPHA_TEST || VFX_USE_ALPHA_CURRENT\n\t\t\t\t// x: alpha\n\t\t\t\t// y:
alpha threshold\n\t\t\t\tnointerpolation float2 builtInInterpolants : TEXCOORD1;\n\t\t\t\t#endif\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\tfloat4 cPosPrevious :
TEXCOORD2;\n\t\t\t\tfloat4 cPosNonJiterred : TEXCOORD3;\n\t\t\t\t#endif\n\t\t\t\n\t\t\t\tUNITY_VERTEX_OUTPUT_STEREO\n\t\t\t};\n\t\t\t\n\t\t\t#define
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if
!(defined(VFX_VARYING_PS_INPUTS) && defined(VFX_VARYING_POSCS))\n\t\t\t#error
VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid
SetAttribute_3278B22F(inout float size, float Size) /*attribute:size Composition:Overwrite
Source:Slot Random:Off channels:XYZ */\n\t\t\t{\n\t\t\t size = Size;\n\t\t\t}\n\t\t\tvoid

/*inout */attributes.pivotZ, float3(0, -0.5, 0));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
SetAttribute_D5151640( /*inout */attributes.scaleX, /*inout */attributes.scaleZ,
float2(0.00779999979, 0.00779999979));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t bool
tmp_ba = attributes.scaleY >= uniform_c;\n\t\t\t\t float tmp_bc = attributes.scaleY
- uniform_c;\n\t\t\t\t float tmp_bd = tmp_bc / uniform_d;\n\t\t\t\t float
tmp_ba = attributes.scaleY >= uniform_a;\n\t\t\t\t float tmp_bc = attributes.scaleY
- uniform_a;\n\t\t\t\t float tmp_bd = tmp_bc / uniform_b;\n\t\t\t\t float
+ tmp_bf;\n\t\t\t\t float tmp_bh = attributes.scaleY / uniform_c;\n\t\t\t\t
+ tmp_bf;\n\t\t\t\t float tmp_bh = attributes.scaleY / uniform_a;\n\t\t\t\t
bool tmp_ba = attributes.scaleY >= uniform_c;\n\t\t\t\t float tmp_bc = attributes.scaleY
- uniform_c;\n\t\t\t\t float tmp_bd = tmp_bc / uniform_d;\n\t\t\t\t float
bool tmp_ba = attributes.scaleY >= uniform_a;\n\t\t\t\t float tmp_bc = attributes.scaleY
- uniform_a;\n\t\t\t\t float tmp_bd = tmp_bc / uniform_b;\n\t\t\t\t float
+ tmp_bf;\n\t\t\t\t float tmp_bh = attributes.scaleY / uniform_c;\n\t\t\t\t
+ tmp_bf;\n\t\t\t\t float tmp_bh = attributes.scaleY / uniform_a;\n\t\t\t\t
? tmp_bg : tmp_bi;\n\t\t\t\t float tmp_bk = SampleCurve(uniform_e,tmp_bj);\n\t\t\t\t
? tmp_bg : tmp_bi;\n\t\t\t\t float tmp_bk = SampleCurve(uniform_c,tmp_bj);\n\t\t\t\t
float tmp_ba = max(attributes.scaleY, uniform_c);\n\t\t\t\t float tmp_bb
= uniform_f * tmp_ba;\n\t\t\t\t SetAttribute_D5151645( /*inout */attributes.scaleY,
float tmp_ba = max(attributes.scaleY, uniform_a);\n\t\t\t\t float tmp_bb
= uniform_d * tmp_ba;\n\t\t\t\t SetAttribute_D5151645( /*inout */attributes.scaleY,
tmp_bb);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t float tmp_bb = attributes.scaleY
/ (float)0.00779999979;\n\t\t\t\t float tmp_bc = floor(tmp_bb);\n\t\t\t\t
float tmp_bd = tmp_bc * (float)0.00779999979;\n\t\t\t\t SetAttribute_D5151645(

* float2(-i.VFX_VARYING_OFFSETS.z,1);\n\t\t\t\telse if (i.VFX_VARYING_FACEID
== 1)\n\t\t\t\t\tuv = i.VFX_VARYING_OFFSETS.xz * float2(i.VFX_VARYING_OFFSETS.y,1);\n\t\t\t\telse\n\t\t\t\t\tuv
= i.VFX_VARYING_OFFSETS.zy * float2(i.VFX_VARYING_OFFSETS.x,1);\n\t\t\t\treturn
uv * 0.5f + 0.5f;\n\t\t\t#else\n\t\t\t\treturn 0.0f;\n\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_Target0\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\tfloat
alpha = VFXGetFragmentColor(i).a;\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2
uv * 0.5f + 0.5f;\n\t\t\t#else\n\t\t\t\treturn 0.0f;\n\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 0\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined\n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t//
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"GBuffer\" }\n\t\t\t\n\t\t
Stencil\n\t\t {\n\t\t WriteMask 6\n\t\t Ref 2\n\t\t Comp Always\n\t\t
Pass Replace\n\t\t }\n\t\n\t\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target

/*inout */attributes.pivotZ, float3(0, -0.5, 0));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
SetAttribute_D5151640( /*inout */attributes.scaleX, /*inout */attributes.scaleZ,
float2(0.00779999979, 0.00779999979));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t bool
tmp_ba = attributes.scaleY >= uniform_c;\n\t\t\t\t float tmp_bc = attributes.scaleY
- uniform_c;\n\t\t\t\t float tmp_bd = tmp_bc / uniform_d;\n\t\t\t\t float
tmp_ba = attributes.scaleY >= uniform_a;\n\t\t\t\t float tmp_bc = attributes.scaleY
- uniform_a;\n\t\t\t\t float tmp_bd = tmp_bc / uniform_b;\n\t\t\t\t float
+ tmp_bf;\n\t\t\t\t float tmp_bh = attributes.scaleY / uniform_c;\n\t\t\t\t
+ tmp_bf;\n\t\t\t\t float tmp_bh = attributes.scaleY / uniform_a;\n\t\t\t\t
bool tmp_ba = attributes.scaleY >= uniform_c;\n\t\t\t\t float tmp_bc = attributes.scaleY
- uniform_c;\n\t\t\t\t float tmp_bd = tmp_bc / uniform_d;\n\t\t\t\t float
bool tmp_ba = attributes.scaleY >= uniform_a;\n\t\t\t\t float tmp_bc = attributes.scaleY
- uniform_a;\n\t\t\t\t float tmp_bd = tmp_bc / uniform_b;\n\t\t\t\t float
+ tmp_bf;\n\t\t\t\t float tmp_bh = attributes.scaleY / uniform_c;\n\t\t\t\t
+ tmp_bf;\n\t\t\t\t float tmp_bh = attributes.scaleY / uniform_a;\n\t\t\t\t
? tmp_bg : tmp_bi;\n\t\t\t\t float tmp_bk = SampleCurve(uniform_e,tmp_bj);\n\t\t\t\t
? tmp_bg : tmp_bi;\n\t\t\t\t float tmp_bk = SampleCurve(uniform_c,tmp_bj);\n\t\t\t\t
float tmp_ba = max(attributes.scaleY, uniform_c);\n\t\t\t\t float tmp_bb
= uniform_f * tmp_ba;\n\t\t\t\t SetAttribute_D5151645( /*inout */attributes.scaleY,
float tmp_ba = max(attributes.scaleY, uniform_a);\n\t\t\t\t float tmp_bb
= uniform_d * tmp_ba;\n\t\t\t\t SetAttribute_D5151645( /*inout */attributes.scaleY,
tmp_bb);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t float tmp_bb = attributes.scaleY
/ (float)0.00779999979;\n\t\t\t\t float tmp_bc = floor(tmp_bb);\n\t\t\t\t
float tmp_bd = tmp_bc * (float)0.00779999979;\n\t\t\t\t SetAttribute_D5151645(

VFX_SHADERGRAPH\n\t\t\t\n\t\t\tvoid VFXGetHDRPLitData(out SurfaceData surfaceData,
out BuiltinData builtinData, out BSDFData bsdfData, out PreLightData preLightData,
VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)\n\t\t\t{\t\n\t\t\t\t#if
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t\t{\n\t\t\t\t
\n\t\t\t\t diffusionProfileHash = (uint)1078544746;\n\t\t\t\t}\n\t\t\t\t\n
// Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
HDRP_MATERIAL_TYPE_TRANSLUCENT\n\t\t\t\tuint diffusionProfileHash = (uint)0;\n\t\t\t{\n\t\t\t
\n\t\t\t diffusionProfileHash = (uint)1078544746;\n\t\t\t}\n\t\t\t\n //
Loads diffusion profile\n\t\t\t\t#else\n\t\t\t\tconst uint diffusionProfileHash
= 0;\n\t\t\t\t#endif\n\t\t\t\t\n\t\t\t\tfloat3 posRWS = VFXGetPositionRWS(i);\n\t\t\t\tfloat4
posSS = i.VFX_VARYING_POSCS;\n\t\t\t\tPositionInputs posInput = GetPositionInput(posSS.xy,
_ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);\n\t\t\t\t\n\t\t\t\tfloat

/*inout */attributes.pivotZ, float3(0, -0.5, 0));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
SetAttribute_D5151640( /*inout */attributes.scaleX, /*inout */attributes.scaleZ,
float2(0.00779999979, 0.00779999979));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t bool
tmp_ba = attributes.scaleY >= uniform_c;\n\t\t\t\t float tmp_bc = attributes.scaleY
- uniform_c;\n\t\t\t\t float tmp_bd = tmp_bc / uniform_d;\n\t\t\t\t float
tmp_ba = attributes.scaleY >= uniform_a;\n\t\t\t\t float tmp_bc = attributes.scaleY
- uniform_a;\n\t\t\t\t float tmp_bd = tmp_bc / uniform_b;\n\t\t\t\t float
+ tmp_bf;\n\t\t\t\t float tmp_bh = attributes.scaleY / uniform_c;\n\t\t\t\t
+ tmp_bf;\n\t\t\t\t float tmp_bh = attributes.scaleY / uniform_a;\n\t\t\t\t
bool tmp_ba = attributes.scaleY >= uniform_c;\n\t\t\t\t float tmp_bc = attributes.scaleY
- uniform_c;\n\t\t\t\t float tmp_bd = tmp_bc / uniform_d;\n\t\t\t\t float
bool tmp_ba = attributes.scaleY >= uniform_a;\n\t\t\t\t float tmp_bc = attributes.scaleY
- uniform_a;\n\t\t\t\t float tmp_bd = tmp_bc / uniform_b;\n\t\t\t\t float
+ tmp_bf;\n\t\t\t\t float tmp_bh = attributes.scaleY / uniform_c;\n\t\t\t\t
+ tmp_bf;\n\t\t\t\t float tmp_bh = attributes.scaleY / uniform_a;\n\t\t\t\t
? tmp_bg : tmp_bi;\n\t\t\t\t float tmp_bk = SampleCurve(uniform_e,tmp_bj);\n\t\t\t\t
? tmp_bg : tmp_bi;\n\t\t\t\t float tmp_bk = SampleCurve(uniform_c,tmp_bj);\n\t\t\t\t
float tmp_ba = max(attributes.scaleY, uniform_c);\n\t\t\t\t float tmp_bb
= uniform_f * tmp_ba;\n\t\t\t\t SetAttribute_D5151645( /*inout */attributes.scaleY,
float tmp_ba = max(attributes.scaleY, uniform_a);\n\t\t\t\t float tmp_bb
= uniform_d * tmp_ba;\n\t\t\t\t SetAttribute_D5151645( /*inout */attributes.scaleY,
tmp_bb);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t float tmp_bb = attributes.scaleY
/ (float)0.00779999979;\n\t\t\t\t float tmp_bc = floor(tmp_bb);\n\t\t\t\t
float tmp_bd = tmp_bc * (float)0.00779999979;\n\t\t\t\t SetAttribute_D5151645(

VFX_USE_SCALEX_CURRENT 1\n#define VFX_USE_SCALEZ_CURRENT 1\n#define VFX_USE_COLOR_CURRENT
1\n#define VFX_USE_SMOOTHNESS_CURRENT 1\n#define VFX_WORLD_SPACE 1\n#include
\"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float4 uniform_e;\n float Color_d;\n float uniform_c;\n float uniform_d;\n
float uniform_f;\n float currentFrameIndex;\n uint3 PADDING_0;\nCBUFFER_END\n\nstruct
float4 uniform_c;\n float Color_d;\n float uniform_a;\n float uniform_b;\n
float uniform_d;\n float currentFrameIndex;\n uint3 PADDING_0;\nCBUFFER_END\n\nstruct
baseColorMap;\nSamplerState samplerbaseColorMap;\nfloat4 baseColorMap_TexelSize;\n\n\r\n#include
baseColorMap;\nSamplerState samplerbaseColorMap;\nfloat4 baseColorMap_TexelSize;\n\n\n\r\n#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n\r\nByteAddressBuffer
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\n\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n\r\nByteAddressBuffer
attributeBuffer;\r\nRWByteAddressBuffer elementToVFXBuffer;\r\n#if VFX_USE_ALIVE_CURRENT\r\nStructuredBuffer<uint>
deadListOut;\r\n#endif\r\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\nStructuredBuffer<uint>
indirectBuffer;\r\n#endif\r\n\r\nCBUFFER_START(updateParams)\r\n\tuint nbMax;\r\n\tuint

/*inout */attributes.pivotX, /*inout */attributes.pivotY, /*inout */attributes.pivotZ,
float3(0, -0.5, 0));\n\t\t\t}\n\t\t\t{\n\t\t\t SetAttribute_D5151640( /*inout
*/attributes.scaleX, /*inout */attributes.scaleZ, float2(0.00779999979, 0.00779999979));\n\t\t\t}\n\t\t\t{\n\t\t\t
bool tmp_bc = attributes.scaleY >= uniform_c;\n\t\t\t float tmp_be = attributes.scaleY
- uniform_c;\n\t\t\t float tmp_bf = tmp_be / uniform_d;\n\t\t\t float
bool tmp_bc = attributes.scaleY >= uniform_a;\n\t\t\t float tmp_be = attributes.scaleY
- uniform_a;\n\t\t\t float tmp_bf = tmp_be / uniform_b;\n\t\t\t float
+ tmp_bh;\n\t\t\t float tmp_bj = attributes.scaleY / uniform_c;\n\t\t\t
+ tmp_bh;\n\t\t\t float tmp_bj = attributes.scaleY / uniform_a;\n\t\t\t
bool tmp_bc = attributes.scaleY >= uniform_c;\n\t\t\t float tmp_be = attributes.scaleY
- uniform_c;\n\t\t\t float tmp_bf = tmp_be / uniform_d;\n\t\t\t float
bool tmp_bc = attributes.scaleY >= uniform_a;\n\t\t\t float tmp_be = attributes.scaleY
- uniform_a;\n\t\t\t float tmp_bf = tmp_be / uniform_b;\n\t\t\t float
+ tmp_bh;\n\t\t\t float tmp_bj = attributes.scaleY / uniform_c;\n\t\t\t
+ tmp_bh;\n\t\t\t float tmp_bj = attributes.scaleY / uniform_a;\n\t\t\t
? tmp_bi : tmp_bk;\n\t\t\t float tmp_bm = SampleCurve(uniform_e,tmp_bl);\n\t\t\t
? tmp_bi : tmp_bk;\n\t\t\t float tmp_bm = SampleCurve(uniform_c,tmp_bl);\n\t\t\t
float tmp_bc = max(attributes.scaleY, uniform_c);\n\t\t\t float tmp_bd =
uniform_f * tmp_bc;\n\t\t\t SetAttribute_D5151645( /*inout */attributes.scaleY,
float tmp_bc = max(attributes.scaleY, uniform_a);\n\t\t\t float tmp_bd =
uniform_d * tmp_bc;\n\t\t\t SetAttribute_D5151645( /*inout */attributes.scaleY,
tmp_bd);\n\t\t\t}\n\t\t\t{\n\t\t\t float tmp_bd = attributes.scaleY / (float)0.00779999979;\n\t\t\t
float tmp_be = floor(tmp_bd);\n\t\t\t float tmp_bf = tmp_be * (float)0.00779999979;\n\t\t\t
SetAttribute_D5151645( /*inout */attributes.scaleY, tmp_bf);\n\t\t\t}\n\t\t\t\n\r\n\t\t\t\r\n\t\t\t\n\t\t\tfloat3

index: 1
temporaryBuffers: []
values:
- nameId: uniform_b
- nameId: uniform_a
- nameId: uniform_c
- nameId: uniform_b
- nameId: uniform_d
- nameId: uniform_c
index: 37
params:
- nameId: bounds_center

index: 35
- nameId: Blend_a
index: 47
- nameId: texture_b
- nameId: texture_a
index: 25
params: []
processor: {fileID: 0}

values:
- nameId: Color_d
index: 52
- nameId: uniform_c
- nameId: uniform_a
- nameId: uniform_d
- nameId: uniform_b
- nameId: uniform_e
- nameId: uniform_c
- nameId: uniform_f
- nameId: uniform_d
index: 9
- nameId: currentFrameIndex
index: 48

values:
- nameId: Color_d
index: 52
- nameId: uniform_c
- nameId: uniform_a
- nameId: uniform_d
- nameId: uniform_b
- nameId: uniform_e
- nameId: uniform_c
- nameId: uniform_f
- nameId: uniform_d
index: 9
- nameId: currentFrameIndex
index: 48

4
ProjectSettings/ProjectVersion.txt


m_EditorVersion: 2019.3.15f1
m_EditorVersionWithRevision: 2019.3.15f1 (59ff3e03856d)
m_EditorVersion: 2019.4.9f1
m_EditorVersionWithRevision: 2019.4.9f1 (50fe8a171dd9)

206
Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/VFX/Flames.vfx


m_InputSlots:
- {fileID: 8926484042661614907}
- {fileID: 8926484042661614664}
- {fileID: 8926484042661614720}
- {fileID: 8926484042661615451}
- {fileID: 8926484042661614908}
- {fileID: 114158099937248418}
m_OutputSlots: []

descendantCount: 2
- name: center
path: Effect Bounds_center
tooltip: The centre of the box.
tooltip: Sets the center of the box.
sheetType: m_Vector3f
realType: Vector3
defaultValue:

descendantCount: 0
- name: size
path: Effect Bounds_size
tooltip: The size of the box along each axis.
tooltip: Sets the size of the box along each axis.
sheetType: m_Vector3f
realType: Vector3
defaultValue:

1\n#define VFX_USE_LIFETIME_CURRENT 1\n#define VFX_USE_TEXINDEX_CURRENT 1\n#define
VFX_USE_SEED_CURRENT 1\n#define VFX_USE_TARGETPOSITION_CURRENT 1\n#define VFX_USE_ALIVE_CURRENT
1\n#define VFX_USE_AGE_CURRENT 1\n#define VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float3 Position_a;\n float Size_b;\n float Lifetime_c;\n float uniform_e;\n
float uniform_f;\n uint PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n
float3 Position_a;\n float Size_b;\n float Lifetime_c;\n float uniform_a;\n
float uniform_b;\n uint PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n
float3 position;\n float size;\n float lifetime;\n float texIndex;\n
uint seed;\n float3 targetPosition;\n bool alive;\n float age;\n};\n\nstruct
SourceAttributes\n{\n};\n\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT

/*attribute:lifetime Composition:Overwrite Source:Slot Random:Off channels:XYZ
*/\n{\n lifetime = Lifetime;\n}\nvoid SetAttribute_CA10063D(inout float
texIndex, float TexIndex) /*attribute:texIndex Composition:Overwrite Source:Slot
Random:Off channels:XYZ */\n{\n texIndex = TexIndex;\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
Random:Off channels:XYZ */\n{\n texIndex = TexIndex;\n}\n\n\r\n\r\n// Due
to a bug in HLSL compiler, disable spurious \"unitialized variable\" due to
mid function return statement\r\n#pragma warning(push)\r\n#pragma warning(disable
: 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

*/attributes.position, Position_a);\n SetAttribute_3278B22F( /*inout
*/attributes.size, Size_b);\n SetAttribute_F0142CB9( /*inout */attributes.lifetime,
Lifetime_c);\n {\n float tmp_bb = Rand(attributes.seed);\n
float tmp_bc = tmp_bb * uniform_f;\n float tmp_be = (bool)asuint(uniform_e)
float tmp_bc = tmp_bb * uniform_b;\n float tmp_be = (bool)asuint(uniform_a)
? tmp_bc : (float)0;\n SetAttribute_CA10063D( /*inout */attributes.texIndex,
tmp_be);\n }\n \n\r\n\t\t\r\n#if VFX_USE_ALIVE_CURRENT\r\n
if (attributes.alive)\r\n#endif \r\n {\r\n#if USE_DEAD_LIST\r\n\t

name: '[Flames]Output Particle Quad'
source: "Shader \"Hidden/VFX/Flames/Flames/Output Particle Quad\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\"
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
One OneMinusSrcAlpha \n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

USE_SOFT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_PREMULTIPLY 1\n\t\t#define VFX_HAS_INDIRECT_DRAW
1\n\t\t#define USE_FLIPBOOK 1\n\t\t#define USE_FLIPBOOK_INTERPOLATION 1\n\t\t#define
USE_EXPOSURE_WEIGHT 1\n\t\t#define USE_DEAD_LIST_COUNT 1\n\t\t#define VFX_PRIMITIVE_QUAD
1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
float4x4 uniform_d;\n\t\t float4 uniform_c;\n\t\t float4 Size_c;\n\t\t
float3 uniform_b;\n\t\t float Scale_d;\n\t\t float3 Pivot_e;\n\t\t
float4x4 uniform_c;\n\t\t float4 uniform_b;\n\t\t float4 Size_c;\n\t\t
float3 uniform_a;\n\t\t float Scale_d;\n\t\t float3 Pivot_e;\n\t\t
float gradient_f;\n\t\t float2 flipBookSize;\n\t\t float2 invFlipBookSize;\n\t\t
float Alpha_g;\n\t\t float gradient;\n\t\t float invSoftParticlesFadeDistance;\n\t\t
float exposureWeight;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct Attributes\n\t\t{\n\t\t

angleZ;\n\t\t float pivotX;\n\t\t float pivotY;\n\t\t float pivotZ;\n\t\t
float scaleX;\n\t\t float scaleY;\n\t\t float scaleZ;\n\t\t float
age;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\tOrient_4(
/*inout */attributes.axisX, /*inout */attributes.axisY, /*inout */attributes.axisZ);\n\t\t\t\t{\n\t\t\t\t
float3 tmp_bl = attributes.targetPosition * float3(1, 0, 1);\n\t\t\t\t float3
tmp_bm = uniform_b + tmp_bl;\n\t\t\t\t float3 tmp_bo = tmp_bm * tmp_bm;\n\t\t\t\t
tmp_bm = uniform_a + tmp_bl;\n\t\t\t\t float3 tmp_bo = tmp_bm * tmp_bm;\n\t\t\t\t
float tmp_bp = tmp_bo[2];\n\t\t\t\t float tmp_bq = tmp_bo[1];\n\t\t\t\t
float tmp_br = tmp_bp + tmp_bq;\n\t\t\t\t float tmp_bs = tmp_bo[0];\n\t\t\t\t
float tmp_bt = tmp_br + tmp_bs;\n\t\t\t\t float tmp_bv = pow(tmp_bt, (float)0.5);\n\t\t\t\t

float tmp_cd = tmp_bz[0];\n\t\t\t\t float tmp_ce = tmp_cc + tmp_cd;\n\t\t\t\t
float tmp_cf = pow(tmp_ce, (float)0.5);\n\t\t\t\t float tmp_cg = (float)1
/ tmp_cf;\n\t\t\t\t float3 tmp_ch = float3(tmp_cg, tmp_cg, tmp_cg);\n\t\t\t\t
float3 tmp_ci = tmp_by * tmp_ch;\n\t\t\t\t float3 tmp_cj = normalize(mul((float3x3)uniform_d,
float3 tmp_ci = tmp_by * tmp_ch;\n\t\t\t\t float3 tmp_cj = normalize(mul((float3x3)uniform_c,
tmp_ci));\n\t\t\t\t float3 tmp_ck = attributes.axisY * attributes.axisY;\n\t\t\t\t
float tmp_cl = tmp_ck[2];\n\t\t\t\t float tmp_cm = tmp_ck[1];\n\t\t\t\t
float tmp_cn = tmp_cl + tmp_cm;\n\t\t\t\t float tmp_co = tmp_ck[0];\n\t\t\t\t

float3 tmp_cu = tmp_cj * tmp_ct;\n\t\t\t\t float tmp_cv = tmp_cu[2];\n\t\t\t\t
float tmp_cw = tmp_cu[1];\n\t\t\t\t float tmp_cx = tmp_cv + tmp_cw;\n\t\t\t\t
float tmp_cy = tmp_cu[0];\n\t\t\t\t float tmp_cz = tmp_cx + tmp_cy;\n\t\t\t\t
float tmp_da = abs(tmp_cz);\n\t\t\t\t float tmp_db = SampleCurve(uniform_c,tmp_da);\n\t\t\t\t
float tmp_da = abs(tmp_cz);\n\t\t\t\t float tmp_db = SampleCurve(uniform_b,tmp_da);\n\t\t\t\t
float3 tmp_dc = float3(tmp_db, tmp_db, tmp_db);\n\t\t\t\t float3 tmp_dd
= tmp_ct - tmp_ci;\n\t\t\t\t float3 tmp_de = tmp_dc * tmp_dd;\n\t\t\t\t
float3 tmp_df = tmp_ci + tmp_de;\n\t\t\t\t float3 tmp_dg = tmp_df * tmp_df;\n\t\t\t\t

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

attributes, stripData);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\n\t\t\t\tOrient_4(
/*inout */attributes.axisX, /*inout */attributes.axisY, /*inout */attributes.axisZ);\n\t\t\t\t{\n\t\t\t\t
float3 tmp_bl = attributes.targetPosition * float3(1, 0, 1);\n\t\t\t\t float3
tmp_bm = uniform_b + tmp_bl;\n\t\t\t\t float3 tmp_bo = tmp_bm * tmp_bm;\n\t\t\t\t
tmp_bm = uniform_a + tmp_bl;\n\t\t\t\t float3 tmp_bo = tmp_bm * tmp_bm;\n\t\t\t\t
float tmp_bp = tmp_bo[2];\n\t\t\t\t float tmp_bq = tmp_bo[1];\n\t\t\t\t
float tmp_br = tmp_bp + tmp_bq;\n\t\t\t\t float tmp_bs = tmp_bo[0];\n\t\t\t\t
float tmp_bt = tmp_br + tmp_bs;\n\t\t\t\t float tmp_bv = pow(tmp_bt, (float)0.5);\n\t\t\t\t

float tmp_cd = tmp_bz[0];\n\t\t\t\t float tmp_ce = tmp_cc + tmp_cd;\n\t\t\t\t
float tmp_cf = pow(tmp_ce, (float)0.5);\n\t\t\t\t float tmp_cg = (float)1
/ tmp_cf;\n\t\t\t\t float3 tmp_ch = float3(tmp_cg, tmp_cg, tmp_cg);\n\t\t\t\t
float3 tmp_ci = tmp_by * tmp_ch;\n\t\t\t\t float3 tmp_cj = normalize(mul((float3x3)uniform_d,
float3 tmp_ci = tmp_by * tmp_ch;\n\t\t\t\t float3 tmp_cj = normalize(mul((float3x3)uniform_c,
tmp_ci));\n\t\t\t\t float3 tmp_ck = attributes.axisY * attributes.axisY;\n\t\t\t\t
float tmp_cl = tmp_ck[2];\n\t\t\t\t float tmp_cm = tmp_ck[1];\n\t\t\t\t
float tmp_cn = tmp_cl + tmp_cm;\n\t\t\t\t float tmp_co = tmp_ck[0];\n\t\t\t\t

float3 tmp_cu = tmp_cj * tmp_ct;\n\t\t\t\t float tmp_cv = tmp_cu[2];\n\t\t\t\t
float tmp_cw = tmp_cu[1];\n\t\t\t\t float tmp_cx = tmp_cv + tmp_cw;\n\t\t\t\t
float tmp_cy = tmp_cu[0];\n\t\t\t\t float tmp_cz = tmp_cx + tmp_cy;\n\t\t\t\t
float tmp_da = abs(tmp_cz);\n\t\t\t\t float tmp_db = SampleCurve(uniform_c,tmp_da);\n\t\t\t\t
float tmp_da = abs(tmp_cz);\n\t\t\t\t float tmp_db = SampleCurve(uniform_b,tmp_da);\n\t\t\t\t
float3 tmp_dc = float3(tmp_db, tmp_db, tmp_db);\n\t\t\t\t float3 tmp_dd
= tmp_ct - tmp_ci;\n\t\t\t\t float3 tmp_de = tmp_dc * tmp_dd;\n\t\t\t\t
float3 tmp_df = tmp_ci + tmp_de;\n\t\t\t\t float3 tmp_dg = tmp_df * tmp_df;\n\t\t\t\t

index: 60
- nameId: Lifetime_c
index: 59
- nameId: uniform_e
- nameId: uniform_a
- nameId: uniform_f
- nameId: uniform_b
index: 34
params:
- nameId: bounds_center

index: 3
temporaryBuffers: []
values:
- nameId: uniform_b
- nameId: uniform_a
- nameId: uniform_c
- nameId: uniform_b
- nameId: uniform_d
- nameId: uniform_c
index: 14
- nameId: Size_c
index: 47

attributes: []
m_Direction: 0
m_LinkedSlots: []
--- !u!114 &8926484042661614720
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Parent: {fileID: 0}
m_Children: []
m_UIPosition: {x: 0, y: 0}
m_UICollapsed: 1
m_UISuperCollapsed: 0
m_MasterSlot: {fileID: 8926484042661614720}
m_MasterData:
m_Owner: {fileID: 114063133802684794}
m_Value:
m_Type:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
m_SerializableObject: 1
m_Space: 2147483647
m_Property:
name: softParticlesFadeDistance
m_serializedType:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
attributes:
- m_Type: 1
m_Min: 0.001
m_Max: Infinity
m_Tooltip:
m_Regex:
m_RegexMaxLength: 0
m_Direction: 0
m_LinkedSlots:
- {fileID: 8926484042661615286}
--- !u!114 &8926484042661614742
MonoBehaviour:
m_ObjectHideFlags: 0

- m_Id: 0
linkedSlots:
- outputSlot: {fileID: 8926484042661615286}
inputSlot: {fileID: 8926484042661614720}
inputSlot: {fileID: 8926484042661615451}
position: {x: 433, y: 1391}
expandedSlots: []
expanded: 0

attributes: []
m_Direction: 1
m_LinkedSlots:
- {fileID: 8926484042661614720}
- {fileID: 8926484042661615451}
--- !u!114 &8926484042661615287
MonoBehaviour:
m_ObjectHideFlags: 0

attributes: []
m_Direction: 0
m_LinkedSlots: []
--- !u!114 &8926484042661615451
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Parent: {fileID: 0}
m_Children: []
m_UIPosition: {x: 0, y: 0}
m_UICollapsed: 1
m_UISuperCollapsed: 0
m_MasterSlot: {fileID: 8926484042661615451}
m_MasterData:
m_Owner: {fileID: 114063133802684794}
m_Value:
m_Type:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
m_SerializableObject: 1
m_Space: 2147483647
m_Property:
name: softParticleFadeDistance
m_serializedType:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
attributes:
- m_Type: 1
m_Min: 0.001
m_Max: Infinity
m_Tooltip:
m_Regex:
m_RegexMaxLength: 0
m_Direction: 0
m_LinkedSlots:
- {fileID: 8926484042661615286}

186
Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/VFX/Smoke.vfx


m_UISuperCollapsed: 0
m_InputSlots:
- {fileID: 8926484042661614664}
- {fileID: 8926484042661614720}
- {fileID: 8926484042661614855}
- {fileID: 114158099937248418}
- {fileID: 8926484042661614854}
m_OutputSlots: []

descendantCount: 2
- name: center
path: Bounds_center
tooltip: The centre of the box.
tooltip: Sets the center of the box.
sheetType: m_Vector3f
realType: Vector3
defaultValue:

descendantCount: 0
- name: size
path: Bounds_size
tooltip: The size of the box along each axis.
tooltip: Sets the size of the box along each axis.
sheetType: m_Vector3f
realType: Vector3
defaultValue:

VFX_USE_ANGLEZ_CURRENT 1\n#define VFX_USE_SEED_CURRENT 1\n#define VFX_USE_PARTICLEID_CURRENT
1\n#define VFX_USE_ALIVE_CURRENT 1\n#define VFX_USE_AGE_CURRENT 1\n#define
VFX_WORLD_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float4x4 uniform_c;\n float3 Position_a;\n float Lifetime_c;\n float3
uniform_d;\n float uniform_g;\n float3 uniform_e;\n float uniform_h;\n
float4x4 uniform_a;\n float3 Position_a;\n float Lifetime_c;\n float3
uniform_b;\n float uniform_d;\n float3 uniform_c;\n float uniform_e;\n
float B_e;\n uint3 PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n
float3 position;\n float3 velocity;\n float lifetime;\n float texIndex;\n
float angleZ;\n uint seed;\n uint particleId;\n bool alive;\n float

Source:Slot Random:Off channels:XYZ */\n{\n texIndex = TexIndex;\n}\nvoid
SetAttribute_48A7C211(inout float angleZ, inout uint seed, float A, float B)
/*attribute:angle Composition:Overwrite Source:Slot Random:Uniform channels:Z
*/\n{\n angleZ = lerp(A.x,B.x,RAND);\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
*/\n{\n angleZ = lerp(A.x,B.x,RAND);\n}\n\n\r\n\r\n// Due to a bug in HLSL
compiler, disable spurious \"unitialized variable\" due to mid function return
statement\r\n#pragma warning(push)\r\n#pragma warning(disable : 4000)\r\n#if
HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

1));\n float3 tmp_bw = tmp_bv - float3(-1, -1, -1);\n
float3 tmp_by = tmp_bw / float3(2, 2, 2);\n float3 tmp_bz = tmp_by
* float3(2, 2, 2);\n float3 tmp_ca = float3(-1, -1, -1) + tmp_bz;\n
float3 tmp_cb = tmp_ca * uniform_e;\n float3 tmp_cc = uniform_d
+ tmp_cb;\n float3 tmp_cd = mul((float3x3)uniform_c, tmp_cc);\n
float3 tmp_cb = tmp_ca * uniform_c;\n float3 tmp_cc = uniform_b
+ tmp_cb;\n float3 tmp_cd = mul((float3x3)uniform_a, tmp_cc);\n
= tmp_bg * uniform_h;\n float tmp_bj = (bool)asuint(uniform_g) ?
= tmp_bg * uniform_e;\n float tmp_bj = (bool)asuint(uniform_d) ?
tmp_bh : (float)0;\n SetAttribute_CA10063D( /*inout */attributes.texIndex,
tmp_bj);\n }\n {\n SetAttribute_48A7C211( /*inout
*/attributes.angleZ, /*inout */attributes.seed, (float)0, B_e);\n }\n

name: '[Smoke]Output Particle Octagon'
source: "Shader \"Hidden/VFX/Smoke/Smoke/Output Particle Octagon\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+400\" \"IgnoreProjector\"=\"True\"
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
SrcAlpha OneMinusSrcAlpha , Zero OneMinusSrcAlpha\n\t\tZTest LEqual\n\t\tZWrite
Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define NB_THREADS_PER_GROUP
64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL (0)\n\t\t#define

VFX_COLORMAPPING_DEFAULT 1\n\t\t#define IS_TRANSPARENT_PARTICLE 1\n\t\t#define
USE_SOFT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_ALPHA 1\n\t\t#define VFX_HAS_INDIRECT_DRAW
1\n\t\t#define USE_FLIPBOOK 1\n\t\t#define USE_FLIPBOOK_INTERPOLATION 1\n\t\t#define
VFX_BYPASS_EXPOSURE 1\n\t\t#define VFX_PRIMITIVE_OCTAGON 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_BYPASS_EXPOSURE 1\n\t\t#define VFX_PRIMITIVE_OCTAGON 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_WORLD_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
float4 Size_b;\n\t\t float2 flipBookSize;\n\t\t float2 invFlipBookSize;\n\t\t
float gradient_c;\n\t\t float FadedDistance_d;\n\t\t float InvFadeDistance_d;\n\t\t

angleX;\n\t\t float angleY;\n\t\t float pivotX;\n\t\t float pivotY;\n\t\t
float pivotZ;\n\t\t float size;\n\t\t float scaleX;\n\t\t float scaleY;\n\t\t
float scaleZ;\n\t\t float age;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

values:
- nameId: Position_a
index: 41
- nameId: uniform_c
- nameId: uniform_a
- nameId: uniform_d
- nameId: uniform_b
- nameId: uniform_e
- nameId: uniform_c
- nameId: uniform_g
- nameId: uniform_d
- nameId: uniform_h
- nameId: uniform_e
index: 12
- nameId: B_e
index: 39

m_Direction: 1
m_LinkedSlots:
- {fileID: 8926484042661614804}
--- !u!114 &8926484042661614720
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Parent: {fileID: 0}
m_Children: []
m_UIPosition: {x: 0, y: 0}
m_UICollapsed: 1
m_UISuperCollapsed: 0
m_MasterSlot: {fileID: 8926484042661614720}
m_MasterData:
m_Owner: {fileID: 114063133802684794}
m_Value:
m_Type:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
m_SerializableObject: 1
m_Space: 2147483647
m_Property:
name: softParticlesFadeDistance
m_serializedType:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
attributes:
- m_Type: 1
m_Min: 0.001
m_Max: Infinity
m_Tooltip:
m_Regex:
m_RegexMaxLength: 0
m_Direction: 0
m_LinkedSlots:
- {fileID: 8926484042661614732}
--- !u!114 &8926484042661614731
MonoBehaviour:
m_ObjectHideFlags: 0

- m_Id: 0
linkedSlots:
- outputSlot: {fileID: 8926484042661614732}
inputSlot: {fileID: 8926484042661614720}
inputSlot: {fileID: 8926484042661614855}
position: {x: 432, y: 1503}
expandedSlots: []
expanded: 0

attributes: []
m_Direction: 1
m_LinkedSlots:
- {fileID: 8926484042661614720}
- {fileID: 8926484042661614855}
--- !u!114 &8926484042661614733
MonoBehaviour:
m_ObjectHideFlags: 0

m_RegexMaxLength: 0
m_Direction: 0
m_LinkedSlots: []
--- !u!114 &8926484042661614855
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Parent: {fileID: 0}
m_Children: []
m_UIPosition: {x: 0, y: 0}
m_UICollapsed: 1
m_UISuperCollapsed: 0
m_MasterSlot: {fileID: 8926484042661614855}
m_MasterData:
m_Owner: {fileID: 114063133802684794}
m_Value:
m_Type:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
m_SerializableObject: 1
m_Space: 2147483647
m_Property:
name: softParticleFadeDistance
m_serializedType:
m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
attributes:
- m_Type: 1
m_Min: 0.001
m_Max: Infinity
m_Tooltip:
m_Regex:
m_RegexMaxLength: 0
m_Direction: 0
m_LinkedSlots:
- {fileID: 8926484042661614732}

118
Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/VFX/Sparks.vfx


1\n#define VFX_USE_SCALEZ_CURRENT 1\n#define VFX_USE_LIFETIME_CURRENT 1\n#define
VFX_USE_PARTICLEID_CURRENT 1\n#define VFX_USE_ALIVE_CURRENT 1\n#define VFX_USE_AGE_CURRENT
1\n#define VFX_WORLD_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float4x4 uniform_c;\n float3 Position_a;\n float uniform_e;\n float3
uniform_d;\n float A_c;\n float3 uniform_f;\n float B_c;\n float
float4x4 uniform_a;\n float3 Position_a;\n float uniform_c;\n float3
uniform_b;\n float A_c;\n float3 uniform_d;\n float B_c;\n float
Density_d;\n float A_e;\n float B_e;\n uint PADDING_0;\nCBUFFER_END\n\nstruct
Attributes\n{\n float3 position;\n float3 velocity;\n float size;\n
uint seed;\n float mass;\n float scaleX;\n float scaleY;\n float

0.125f;\n mass = (4.0f / 3.0f) * UNITY_PI * radiusCubed * Density;\n
\n}\nvoid SetAttribute_F01429A3(inout float lifetime, inout uint seed, float
A, float B) /*attribute:lifetime Composition:Overwrite Source:Slot Random:Uniform
channels:XYZ */\n{\n lifetime = lerp(A,B,RAND);\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
channels:XYZ */\n{\n lifetime = lerp(A,B,RAND);\n}\n\n\r\n\r\n// Due to
a bug in HLSL compiler, disable spurious \"unitialized variable\" due to mid
function return statement\r\n#pragma warning(push)\r\n#pragma warning(disable
: 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

stripData);\r\n\t\t// TODO Change seed to be sure we're deterministic on random
with strip\r\n#endif\r\n \r\n SetAttribute_CAC29747( /*inout
*/attributes.position, Position_a);\n {\n uint tmp_bi = attributes.particleId
^ asuint(uniform_e);\n float tmp_bj = FixedRand(tmp_bi);\n
^ asuint(uniform_c);\n float tmp_bj = FixedRand(tmp_bi);\n
float3 tmp_bo = uniform_d * tmp_bn;\n float tmp_br = Rand(attributes.seed);\n
float3 tmp_bo = uniform_b * tmp_bn;\n float tmp_br = Rand(attributes.seed);\n
float tmp_bt = tmp_br * (float)2;\n float tmp_bu = (float)-1 + tmp_bt;\n
float tmp_bv = Rand(attributes.seed);\n float tmp_bw = tmp_bv *
(float)2;\n float tmp_bx = (float)-1 + tmp_bw;\n float

tmp_ce - float3(-1, -1, -1);\n float3 tmp_ch = tmp_cf / float3(2,
2, 2);\n float3 tmp_ci = tmp_ch * float3(2, 2, 2);\n
float3 tmp_cj = float3(-1, -1, -1) + tmp_ci;\n float3 tmp_ck = tmp_cj
* uniform_f;\n float3 tmp_cl = tmp_bo + tmp_ck;\n float3
tmp_cm = mul((float3x3)uniform_c, tmp_cl);\n SetAttribute_E629755(
* uniform_d;\n float3 tmp_cl = tmp_bo + tmp_ck;\n float3
tmp_cm = mul((float3x3)uniform_a, tmp_cl);\n SetAttribute_E629755(
/*inout */attributes.velocity, tmp_cm);\n }\n SetAttribute_3278B545(
/*inout */attributes.size, /*inout */attributes.seed, A_c, B_c);\n
AttributeMassFromVolume( /*inout */attributes.mass, attributes.size, attributes.scaleX,

1\n#define VFX_USE_MASS_CURRENT 1\n#define VFX_USE_LIFETIME_CURRENT 1\n#define
VFX_USE_ALIVE_CURRENT 1\n#define VFX_USE_AGE_CURRENT 1\n#define VFX_WORLD_SPACE
1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float3 Force_a;\n float deltaTime_a;\n float3 uniform_d;\n float dragCoefficient_c;\n
float3 uniform_e;\n uint PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n
float3 Force_a;\n float deltaTime_a;\n float3 uniform_a;\n float dragCoefficient_c;\n
float3 uniform_b;\n uint PADDING_0;\nCBUFFER_END\n\nstruct Attributes\n{\n
float3 position;\n float3 velocity;\n float mass;\n float lifetime;\n
bool alive;\n float age;\n};\n\nstruct SourceAttributes\n{\n};\n\n\n\r\n\r\n#define
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer

stripData = GetStripDataFromParticleIndex(index, PARTICLE_PER_STRIP_COUNT);\r\n
InitStripAttributes(index, attributes, stripData);\r\n#endif\r\n\t\t\t\r\n\t\t\tGravity(
/*inout */attributes.velocity, Force_a, deltaTime_a);\n\t\t\t{\n\t\t\t float3
tmp_bc = attributes.position + uniform_d;\n\t\t\t float3 tmp_bf = GeneratePerlinCurlNoise(tmp_bc,
tmp_bc = attributes.position + uniform_a;\n\t\t\t float3 tmp_bf = GeneratePerlinCurlNoise(tmp_bc,
float3 tmp_bg = tmp_bf * uniform_e;\n\t\t\t Force_0( /*inout */attributes.velocity,
float3 tmp_bg = tmp_bf * uniform_b;\n\t\t\t Force_0( /*inout */attributes.velocity,
attributes.mass, tmp_bg, deltaTime_a);\n\t\t\t}\n\t\t\tDrag_0( /*inout */attributes.velocity,
attributes.mass, dragCoefficient_c, deltaTime_a);\n\t\t\tEulerIntegration(
/*inout */attributes.position, attributes.velocity, deltaTime_a);\n\t\t\tAge(

stripData = GetStripDataFromParticleIndex(index, PARTICLE_PER_STRIP_COUNT);\r\n
InitStripAttributes(index, attributes, stripData);\r\n#endif\r\n\t\t\r\n\t\tGravity(
/*inout */attributes.velocity, Force_a, deltaTime_a);\n\t\t{\n\t\t float3
tmp_bc = attributes.position + uniform_d;\n\t\t float3 tmp_bf = GeneratePerlinCurlNoise(tmp_bc,
tmp_bc = attributes.position + uniform_a;\n\t\t float3 tmp_bf = GeneratePerlinCurlNoise(tmp_bc,
float3 tmp_bg = tmp_bf * uniform_e;\n\t\t Force_0( /*inout */attributes.velocity,
float3 tmp_bg = tmp_bf * uniform_b;\n\t\t Force_0( /*inout */attributes.velocity,
attributes.mass, tmp_bg, deltaTime_a);\n\t\t}\n\t\tDrag_0( /*inout */attributes.velocity,
attributes.mass, dragCoefficient_c, deltaTime_a);\n\t\tEulerIntegration( /*inout
*/attributes.position, attributes.velocity, deltaTime_a);\n\t\tAge( /*inout

name: '[Sparks]Output Particle Quad'
source: "Shader \"Hidden/VFX/Sparks/Sparks/Output Particle Quad\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\"
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
SrcAlpha One \n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

VFX_USE_PIVOTY_CURRENT 1\n\t\t#define VFX_USE_PIVOTZ_CURRENT 1\n\t\t#define
VFX_USE_AGE_CURRENT 1\n\t\t#define VFX_COLORMAPPING_GRADIENTMAPPED 1\n\t\t#define
IS_TRANSPARENT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_ADD 1\n\t\t#define USE_EXPOSURE_WEIGHT
1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_WORLD_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
float4 Scale_c;\n\t\t float Scale_b;\n\t\t float gradient_d;\n\t\t
float gradient;\n\t\t float exposureWeight;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct

float angleX;\n\t\t float angleY;\n\t\t float angleZ;\n\t\t float
pivotX;\n\t\t float pivotY;\n\t\t float pivotZ;\n\t\t float age;\n\t\t};\n\t\t\n\t\tstruct
SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D mainTexture;\n\t\tSamplerState
samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

values:
- nameId: Position_a
index: 48
- nameId: uniform_c
- nameId: uniform_a
- nameId: uniform_d
- nameId: uniform_b
- nameId: uniform_e
- nameId: uniform_c
- nameId: uniform_f
- nameId: uniform_d
index: 14
- nameId: A_c
index: 47

index: 51
- nameId: deltaTime_a
index: 41
- nameId: uniform_d
- nameId: uniform_a
- nameId: uniform_e
- nameId: uniform_b
index: 37
- nameId: dragCoefficient_c
index: 52

384
Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/VFX/Bonfire.vfx


serializedVersion: 2
x: -521
y: -1031
width: 3244
width: 3276
height: 1945
--- !u!114 &114350483966674976
MonoBehaviour:

descendantCount: 2
- name: center
path: Spawn Area_center
tooltip: The centre of the circle.
tooltip: Sets the center of the circle.
sheetType: m_Vector3f
realType: Vector3
defaultValue:

descendantCount: 0
- name: radius
path: Spawn Area_radius
tooltip: The radius of the circle.
tooltip: Sets the radius of the circle.
sheetType: m_Float
realType: Single
defaultValue:

VFX_USE_SEED_CURRENT 1\n#define VFX_USE_TARGETPOSITION_CURRENT 1\n#define VFX_USE_PARTICLEID_CURRENT
1\n#define VFX_USE_ALIVE_CURRENT 1\n#define VFX_USE_AGE_CURRENT 1\n#define
VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float3 uniform_b;\n uint PADDING_0;\n float3 uniform_c;\n uint PADDING_1;\nCBUFFER_END\n\nstruct
float3 uniform_a;\n uint PADDING_0;\n float3 uniform_b;\n uint PADDING_1;\nCBUFFER_END\n\nstruct
Attributes\n{\n float3 position;\n float size;\n float lifetime;\n
float texIndex;\n uint seed;\n float3 targetPosition;\n uint particleId;\n
bool alive;\n float age;\n};\n\nstruct SourceAttributes\n{\n};\n\n\n\r\n\r\n#define

/*attribute:lifetime Composition:Overwrite Source:Slot Random:Off channels:XYZ
*/\n{\n lifetime = Lifetime;\n}\nvoid SetAttribute_CA10063D(inout float
texIndex, float TexIndex) /*attribute:texIndex Composition:Overwrite Source:Slot
Random:Off channels:XYZ */\n{\n texIndex = TexIndex;\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
Random:Off channels:XYZ */\n{\n texIndex = TexIndex;\n}\n\n\r\n\r\n// Due
to a bug in HLSL compiler, disable spurious \"unitialized variable\" due to
mid function return statement\r\n#pragma warning(push)\r\n#pragma warning(disable
: 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

float tmp_bk = pow(tmp_bi, (float)0.5);\n float2 tmp_bl = float2(tmp_bk,
tmp_bk);\n float2 tmp_bm = tmp_bh * tmp_bl;\n float tmp_bn
= tmp_bm[0];\n float tmp_bo = tmp_bm[1];\n float3 tmp_bq
= float3(tmp_bn, tmp_bo, (float)0);\n float3 tmp_br = uniform_c
* tmp_bq;\n float3 tmp_bs = uniform_b + tmp_br;\n float3
= float3(tmp_bn, tmp_bo, (float)0);\n float3 tmp_br = uniform_b
* tmp_bq;\n float3 tmp_bs = uniform_a + tmp_br;\n float3
tmp_bt = mul(float4x4(1,0,0,0,0,5.96046448E-08,-0.99999994,0,0,0.99999994,5.96046448E-08,0,0,0,0,1),
float4(tmp_bs, 1.0)).xyz;\n SetAttribute_CAC29747( /*inout */attributes.position,
tmp_bt);\n }\n {\n SetAttribute_3278B22F( /*inout

1\n#define VFX_USE_TARGETPOSITION_CURRENT 1\n#define VFX_USE_PARTICLEID_CURRENT
1\n#define VFX_USE_ALIVE_CURRENT 1\n#define VFX_USE_AGE_CURRENT 1\n#define
VFX_HAS_INDIRECT_DRAW 1\n#define VFX_LOCAL_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float3 uniform_b;\n float uniform_c;\n float uniform_d;\n uint3 PADDING_0;\nCBUFFER_END\n\nstruct
float3 uniform_a;\n float uniform_b;\n float uniform_c;\n uint3 PADDING_0;\nCBUFFER_END\n\nstruct
Attributes\n{\n float lifetime;\n float texIndex;\n float3 targetPosition;\n
uint particleId;\n bool alive;\n float age;\n};\n\nstruct SourceAttributes\n{\n};\n\n\n\r\n\r\n#define
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer

= attributes.position;\r\n#endif\r\n#if HAS_STRIPS\r\n const StripData
stripData = GetStripDataFromParticleIndex(index, PARTICLE_PER_STRIP_COUNT);\r\n
InitStripAttributes(index, attributes, stripData);\r\n#endif\r\n\t\t\t\r\n\t\t\t{\n\t\t\t
float4 tmp_bd = GeneratePerlinNoise(uniform_b, float3(1, 0.5, 2).x, (int)1,
float4 tmp_bd = GeneratePerlinNoise(uniform_a, float3(1, 0.5, 2).x, (int)1,
float3(1, 0.5, 2).y, float3(1, 0.5, 2).z);\n\t\t\t float tmp_be = tmp_bd[1];\n\t\t\t
float tmp_bg = tmp_be * (float)2;\n\t\t\t float tmp_bh = tmp_bd[2];\n\t\t\t
float tmp_bi = tmp_bh * (float)2;\n\t\t\t float tmp_bj = tmp_bd[3];\n\t\t\t

tmp_cj = tmp_cf[0];\n\t\t\t float tmp_ck = tmp_ci + tmp_cj;\n\t\t\t float
tmp_cl = pow(tmp_ck, (float)0.5);\n\t\t\t float tmp_cm = (float)1 / tmp_cl;\n\t\t\t
float3 tmp_cn = float3(tmp_cm, tmp_cm, tmp_cm);\n\t\t\t float3 tmp_co =
tmp_ce * tmp_cn;\n\t\t\t uint tmp_cq = attributes.particleId ^ asuint(uniform_d);\n\t\t\t
tmp_ce * tmp_cn;\n\t\t\t uint tmp_cq = attributes.particleId ^ asuint(uniform_c);\n\t\t\t
float tmp_cu = (float)0.00999999978 + tmp_ct;\n\t\t\t float tmp_cv = uniform_c
float tmp_cu = (float)0.00999999978 + tmp_ct;\n\t\t\t float tmp_cv = uniform_b
uint tmp_bb = attributes.particleId ^ asuint(uniform_d);\n\t\t\t float tmp_bc
uint tmp_bb = attributes.particleId ^ asuint(uniform_c);\n\t\t\t float tmp_bc
tmp_bf, uniform_c);\n\t\t\t}\n\t\t\tAge( /*inout */attributes.age, uniform_c);\n\t\t\tReap(attributes.age,
tmp_bf, uniform_b);\n\t\t\t}\n\t\t\tAge( /*inout */attributes.age, uniform_b);\n\t\t\tReap(attributes.age,
attributes.lifetime, /*inout */attributes.alive);\n\t\t\t\n\r\n\r\n\t\t\tif
(attributes.alive)\r\n\t\t\t{\r\n\t\t\t\tattributeBuffer.Store((index * 0x8
+ 0x303) << 2,asuint(attributes.texIndex));\n\t\t\t\tattributeBuffer.Store3((index

VFX_USE_OLDPOSITION_CURRENT\r\n\t\tattributes.oldPosition = attributes.position;\r\n#endif\r\n#if
HAS_STRIPS\r\n const StripData stripData = GetStripDataFromParticleIndex(index,
PARTICLE_PER_STRIP_COUNT);\r\n InitStripAttributes(index, attributes,
stripData);\r\n#endif\r\n\t\t\r\n\t\t{\n\t\t float4 tmp_bd = GeneratePerlinNoise(uniform_b,
stripData);\r\n#endif\r\n\t\t\r\n\t\t{\n\t\t float4 tmp_bd = GeneratePerlinNoise(uniform_a,
float3(1, 0.5, 2).x, (int)1, float3(1, 0.5, 2).y, float3(1, 0.5, 2).z);\n\t\t
float tmp_be = tmp_bd[1];\n\t\t float tmp_bg = tmp_be * (float)2;\n\t\t
float tmp_bh = tmp_bd[2];\n\t\t float tmp_bi = tmp_bh * (float)2;\n\t\t

+ tmp_cj;\n\t\t float tmp_cl = pow(tmp_ck, (float)0.5);\n\t\t float tmp_cm
= (float)1 / tmp_cl;\n\t\t float3 tmp_cn = float3(tmp_cm, tmp_cm, tmp_cm);\n\t\t
float3 tmp_co = tmp_ce * tmp_cn;\n\t\t uint tmp_cq = attributes.particleId
^ asuint(uniform_d);\n\t\t float tmp_cr = FixedRand(tmp_cq);\n\t\t float
^ asuint(uniform_c);\n\t\t float tmp_cr = FixedRand(tmp_cq);\n\t\t float
+ tmp_ct;\n\t\t float tmp_cv = uniform_c * tmp_cu;\n\t\t float tmp_cw
+ tmp_ct;\n\t\t float tmp_cv = uniform_b * tmp_cu;\n\t\t float tmp_cw
^ asuint(uniform_d);\n\t\t float tmp_bc = FixedRand(tmp_bb);\n\t\t float
^ asuint(uniform_c);\n\t\t float tmp_bc = FixedRand(tmp_bb);\n\t\t float
FlipbookPlay_0( /*inout */attributes.texIndex, tmp_bf, uniform_c);\n\t\t}\n\t\tAge(
/*inout */attributes.age, uniform_c);\n\t\tReap(attributes.age, attributes.lifetime,
FlipbookPlay_0( /*inout */attributes.texIndex, tmp_bf, uniform_b);\n\t\t}\n\t\tAge(
/*inout */attributes.age, uniform_b);\n\t\tReap(attributes.age, attributes.lifetime,
/*inout */attributes.alive);\n\t\t\n\r\n\t\tattributeBuffer.Store((index *
0x8 + 0x303) << 2,asuint(attributes.texIndex));\n\t\tattributeBuffer.Store3((index
* 0x8 + 0x300) << 2,asuint(attributes.targetPosition));\n\t\tattributeBuffer.Store((index

name: '[Flames]Output Particle Quad'
source: "Shader \"Hidden/VFX/Flames/Flames/Output Particle Quad\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\"
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
One OneMinusSrcAlpha \n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

USE_SOFT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_PREMULTIPLY 1\n\t\t#define VFX_HAS_INDIRECT_DRAW
1\n\t\t#define USE_FLIPBOOK 1\n\t\t#define USE_FLIPBOOK_INTERPOLATION 1\n\t\t#define
USE_EXPOSURE_WEIGHT 1\n\t\t#define USE_DEAD_LIST_COUNT 1\n\t\t#define VFX_PRIMITIVE_QUAD
1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
float4x4 uniform_c;\n\t\t float4 uniform_b;\n\t\t float4 Size_c;\n\t\t
float4x4 uniform_b;\n\t\t float4 uniform_a;\n\t\t float4 Size_c;\n\t\t
float gradient_f;\n\t\t float gradient;\n\t\t uint2 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float3 position;\n\t\t float size;\n\t\t float
lifetime;\n\t\t float texIndex;\n\t\t float3 targetPosition;\n\t\t

float pivotZ;\n\t\t float scaleX;\n\t\t float scaleY;\n\t\t float
scaleZ;\n\t\t float age;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

float tmp_bx = tmp_bt[0];\n\t\t\t\t float tmp_by = tmp_bw + tmp_bx;\n\t\t\t\t
float tmp_bz = pow(tmp_by, (float)0.5);\n\t\t\t\t float tmp_ca = (float)1
/ tmp_bz;\n\t\t\t\t float3 tmp_cb = float3(tmp_ca, tmp_ca, tmp_ca);\n\t\t\t\t
float3 tmp_cc = tmp_bs * tmp_cb;\n\t\t\t\t float3 tmp_cd = normalize(mul((float3x3)uniform_c,
float3 tmp_cc = tmp_bs * tmp_cb;\n\t\t\t\t float3 tmp_cd = normalize(mul((float3x3)uniform_b,
tmp_cc));\n\t\t\t\t float3 tmp_ce = attributes.axisY * attributes.axisY;\n\t\t\t\t
float tmp_cf = tmp_ce[2];\n\t\t\t\t float tmp_cg = tmp_ce[1];\n\t\t\t\t
float tmp_ch = tmp_cf + tmp_cg;\n\t\t\t\t float tmp_ci = tmp_ce[0];\n\t\t\t\t

float3 tmp_co = tmp_cd * tmp_cn;\n\t\t\t\t float tmp_cp = tmp_co[2];\n\t\t\t\t
float tmp_cq = tmp_co[1];\n\t\t\t\t float tmp_cr = tmp_cp + tmp_cq;\n\t\t\t\t
float tmp_cs = tmp_co[0];\n\t\t\t\t float tmp_ct = tmp_cr + tmp_cs;\n\t\t\t\t
float tmp_cu = abs(tmp_ct);\n\t\t\t\t float tmp_cv = SampleCurve(uniform_b,tmp_cu);\n\t\t\t\t
float tmp_cu = abs(tmp_ct);\n\t\t\t\t float tmp_cv = SampleCurve(uniform_a,tmp_cu);\n\t\t\t\t
float3 tmp_cw = float3(tmp_cv, tmp_cv, tmp_cv);\n\t\t\t\t float3 tmp_cx
= tmp_cn - tmp_cc;\n\t\t\t\t float3 tmp_cy = tmp_cw * tmp_cx;\n\t\t\t\t
float3 tmp_cz = tmp_cc + tmp_cy;\n\t\t\t\t float3 tmp_da = tmp_cz * tmp_cz;\n\t\t\t\t

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

float tmp_bx = tmp_bt[0];\n\t\t\t\t float tmp_by = tmp_bw + tmp_bx;\n\t\t\t\t
float tmp_bz = pow(tmp_by, (float)0.5);\n\t\t\t\t float tmp_ca = (float)1
/ tmp_bz;\n\t\t\t\t float3 tmp_cb = float3(tmp_ca, tmp_ca, tmp_ca);\n\t\t\t\t
float3 tmp_cc = tmp_bs * tmp_cb;\n\t\t\t\t float3 tmp_cd = normalize(mul((float3x3)uniform_c,
float3 tmp_cc = tmp_bs * tmp_cb;\n\t\t\t\t float3 tmp_cd = normalize(mul((float3x3)uniform_b,
tmp_cc));\n\t\t\t\t float3 tmp_ce = attributes.axisY * attributes.axisY;\n\t\t\t\t
float tmp_cf = tmp_ce[2];\n\t\t\t\t float tmp_cg = tmp_ce[1];\n\t\t\t\t
float tmp_ch = tmp_cf + tmp_cg;\n\t\t\t\t float tmp_ci = tmp_ce[0];\n\t\t\t\t

float3 tmp_co = tmp_cd * tmp_cn;\n\t\t\t\t float tmp_cp = tmp_co[2];\n\t\t\t\t
float tmp_cq = tmp_co[1];\n\t\t\t\t float tmp_cr = tmp_cp + tmp_cq;\n\t\t\t\t
float tmp_cs = tmp_co[0];\n\t\t\t\t float tmp_ct = tmp_cr + tmp_cs;\n\t\t\t\t
float tmp_cu = abs(tmp_ct);\n\t\t\t\t float tmp_cv = SampleCurve(uniform_b,tmp_cu);\n\t\t\t\t
float tmp_cu = abs(tmp_ct);\n\t\t\t\t float tmp_cv = SampleCurve(uniform_a,tmp_cu);\n\t\t\t\t
float3 tmp_cw = float3(tmp_cv, tmp_cv, tmp_cv);\n\t\t\t\t float3 tmp_cx
= tmp_cn - tmp_cc;\n\t\t\t\t float3 tmp_cy = tmp_cw * tmp_cx;\n\t\t\t\t
float3 tmp_cz = tmp_cc + tmp_cy;\n\t\t\t\t float3 tmp_da = tmp_cz * tmp_cz;\n\t\t\t\t

VFX_USE_ANGLEZ_CURRENT 1\n#define VFX_USE_SEED_CURRENT 1\n#define VFX_USE_PARTICLEID_CURRENT
1\n#define VFX_USE_ALIVE_CURRENT 1\n#define VFX_USE_AGE_CURRENT 1\n#define
VFX_WORLD_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float4x4 uniform_b;\n float3 uniform_c;\n float uniform_f;\n float3
uniform_d;\n float uniform_g;\n float3 uniform_e;\n float uniform_h;\nCBUFFER_END\n\nstruct
float4x4 uniform_a;\n float3 uniform_b;\n float uniform_e;\n float3
uniform_c;\n float uniform_f;\n float3 uniform_d;\n float uniform_g;\nCBUFFER_END\n\nstruct
Attributes\n{\n float3 position;\n float3 velocity;\n float lifetime;\n
float texIndex;\n float angleZ;\n uint seed;\n uint particleId;\n
bool alive;\n float age;\n};\n\nstruct SourceAttributes\n{\n};\n\n\n\r\n\r\n#define

Source:Slot Random:Off channels:XYZ */\n{\n texIndex = TexIndex;\n}\nvoid
SetAttribute_48A7C211(inout float angleZ, inout uint seed, float A, float B)
/*attribute:angle Composition:Overwrite Source:Slot Random:Uniform channels:Z
*/\n{\n angleZ = lerp(A.x,B.x,RAND);\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
*/\n{\n angleZ = lerp(A.x,B.x,RAND);\n}\n\n\r\n\r\n// Due to a bug in HLSL
compiler, disable spurious \"unitialized variable\" due to mid function return
statement\r\n#pragma warning(push)\r\n#pragma warning(disable : 4000)\r\n#if
HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

float tmp_bq = pow(tmp_bo, (float)0.5);\n float2 tmp_br = float2(tmp_bq,
tmp_bq);\n float2 tmp_bs = tmp_bn * tmp_br;\n float tmp_bt
= tmp_bs[0];\n float tmp_bu = tmp_bs[1];\n float3 tmp_bw
= float3(tmp_bt, tmp_bu, (float)0);\n float3 tmp_bx = uniform_d
* tmp_bw;\n float3 tmp_by = uniform_c + tmp_bx;\n float3
= float3(tmp_bt, tmp_bu, (float)0);\n float3 tmp_bx = uniform_c
* tmp_bw;\n float3 tmp_by = uniform_b + tmp_bx;\n float3
0);\n float4 tmp_cf = GeneratePerlinNoise(uniform_e, float3(1, 0.5,
0);\n float4 tmp_cf = GeneratePerlinNoise(uniform_d, float3(1, 0.5,
2).x, (int)1, float3(1, 0.5, 2).y, float3(1, 0.5, 2).z);\n float
tmp_cg = tmp_cf[1];\n float tmp_ci = tmp_cg * (float)2;\n
float tmp_cj = tmp_cf[2];\n float tmp_ck = tmp_cj * (float)2;\n

2, 2);\n float3 tmp_ct = tmp_cr * float3(0.400000006, 0, 0.400000006);\n
float3 tmp_cu = float3(-0.200000003, 0, -0.200000003) + tmp_ct;\n
float3 tmp_cw = tmp_cu * float3(0.200000003, 0.200000003, 0.200000003);\n
float3 tmp_cx = tmp_cb + tmp_cw;\n float3 tmp_cy = mul(uniform_b,
float3 tmp_cx = tmp_cb + tmp_cw;\n float3 tmp_cy = mul(uniform_a,
float4(tmp_cx, 1.0)).xyz;\n SetAttribute_CAC29747( /*inout */attributes.position,
tmp_cy);\n }\n {\n float tmp_bi = Rand(attributes.seed);\n
float tmp_bk = tmp_bi * (float)2;\n float tmp_bl = (float)-1 + tmp_bk;\n

2, 2);\n float3 tmp_bz = tmp_by * float3(2, 2, 2);\n
float3 tmp_ca = float3(-1, -1, -1) + tmp_bz;\n float3 tmp_cc = tmp_ca
* float3(0.100000001, 0.100000001, 0.100000001);\n float3 tmp_cd
= float3(0, 0.5, 0) + tmp_cc;\n float3 tmp_ce = mul((float3x3)uniform_b,
= float3(0, 0.5, 0) + tmp_cc;\n float3 tmp_ce = mul((float3x3)uniform_a,
^ asuint(uniform_g);\n float tmp_bg = FixedRand(tmp_bf);\n
float tmp_bh = tmp_bg * uniform_h;\n float tmp_bi = uniform_f +
^ asuint(uniform_f);\n float tmp_bg = FixedRand(tmp_bf);\n
float tmp_bh = tmp_bg * uniform_g;\n float tmp_bi = uniform_e +
tmp_bh;\n SetAttribute_F0142CB9( /*inout */attributes.lifetime,
tmp_bi);\n }\n {\n float tmp_bf = Rand(attributes.seed);\n
float tmp_bh = tmp_bf * (float)64;\n SetAttribute_CA10063D( /*inout

1\n#define VFX_USE_LIFETIME_CURRENT 1\n#define VFX_USE_TEXINDEX_CURRENT 1\n#define
VFX_USE_MASS_CURRENT 1\n#define VFX_USE_ALIVE_CURRENT 1\n#define VFX_USE_AGE_CURRENT
1\n#define VFX_HAS_INDIRECT_DRAW 1\n#define VFX_WORLD_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float4x4 uniform_b;\n float3 uniform_c;\n float deltaTime_a;\nCBUFFER_END\n\nstruct
float4x4 uniform_a;\n float3 uniform_b;\n float deltaTime_a;\nCBUFFER_END\n\nstruct
Attributes\n{\n float3 position;\n float3 velocity;\n float lifetime;\n
float texIndex;\n float mass;\n bool alive;\n float age;\n};\n\nstruct
SourceAttributes\n{\n};\n\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT

VFX_USE_OLDPOSITION_CURRENT\r\n\t\t\tattributes.oldPosition = attributes.position;\r\n#endif\r\n#if
HAS_STRIPS\r\n const StripData stripData = GetStripDataFromParticleIndex(index,
PARTICLE_PER_STRIP_COUNT);\r\n InitStripAttributes(index, attributes,
stripData);\r\n#endif\r\n\t\t\t\r\n\t\t\t{\n\t\t\t float4 tmp_be = GeneratePerlinNoise(uniform_c,
stripData);\r\n#endif\r\n\t\t\t\r\n\t\t\t{\n\t\t\t float4 tmp_be = GeneratePerlinNoise(uniform_b,
float3(1, 0.5, 2).x, (int)1, float3(1, 0.5, 2).y, float3(1, 0.5, 2).z);\n\t\t\t
float tmp_bf = tmp_be[1];\n\t\t\t float tmp_bh = tmp_bf * (float)2;\n\t\t\t
float tmp_bi = tmp_be[2];\n\t\t\t float tmp_bj = tmp_bi * (float)2;\n\t\t\t

2, 2);\n\t\t\t float3 tmp_bs = tmp_bq * float3(0.400000006, 0, 0.400000006);\n\t\t\t
float3 tmp_bt = float3(-0.200000003, 0, -0.200000003) + tmp_bs;\n\t\t\t
float3 tmp_bu = mul((float3x3)uniform_b, tmp_bt);\n\t\t\t Force_0( /*inout
float3 tmp_bu = mul((float3x3)uniform_a, tmp_bt);\n\t\t\t Force_0( /*inout
*/attributes.velocity, attributes.mass, tmp_bu, deltaTime_a);\n\t\t\t}\n\t\t\t{\n\t\t\t
Drag_0( /*inout */attributes.velocity, attributes.mass, (float)0.699999988,
deltaTime_a);\n\t\t\t}\n\t\t\t{\n\t\t\t FlipbookPlay_0( /*inout */attributes.texIndex,

= attributes.position;\r\n#endif\r\n#if HAS_STRIPS\r\n const StripData
stripData = GetStripDataFromParticleIndex(index, PARTICLE_PER_STRIP_COUNT);\r\n
InitStripAttributes(index, attributes, stripData);\r\n#endif\r\n\t\t\r\n\t\t{\n\t\t
float4 tmp_be = GeneratePerlinNoise(uniform_c, float3(1, 0.5, 2).x, (int)1,
float4 tmp_be = GeneratePerlinNoise(uniform_b, float3(1, 0.5, 2).x, (int)1,
float3(1, 0.5, 2).y, float3(1, 0.5, 2).z);\n\t\t float tmp_bf = tmp_be[1];\n\t\t
float tmp_bh = tmp_bf * (float)2;\n\t\t float tmp_bi = tmp_be[2];\n\t\t
float tmp_bj = tmp_bi * (float)2;\n\t\t float tmp_bk = tmp_be[3];\n\t\t

0, 0.400000006);\n\t\t float3 tmp_bt = float3(-0.200000003, 0, -0.200000003)
+ tmp_bs;\n\t\t float3 tmp_bu = mul((float3x3)uniform_b, tmp_bt);\n\t\t
+ tmp_bs;\n\t\t float3 tmp_bu = mul((float3x3)uniform_a, tmp_bt);\n\t\t
Force_0( /*inout */attributes.velocity, attributes.mass, tmp_bu, deltaTime_a);\n\t\t}\n\t\t{\n\t\t
Drag_0( /*inout */attributes.velocity, attributes.mass, (float)0.699999988,
deltaTime_a);\n\t\t}\n\t\t{\n\t\t FlipbookPlay_0( /*inout */attributes.texIndex,

name: '[Smoke]Output Particle Octagon'
source: "Shader \"Hidden/VFX/Smoke/Smoke/Output Particle Octagon\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+400\" \"IgnoreProjector\"=\"True\"
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
SrcAlpha OneMinusSrcAlpha , Zero OneMinusSrcAlpha\n\t\tZTest LEqual\n\t\tZWrite
Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define NB_THREADS_PER_GROUP
64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL (0)\n\t\t#define

VFX_COLORMAPPING_DEFAULT 1\n\t\t#define IS_TRANSPARENT_PARTICLE 1\n\t\t#define
USE_SOFT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_ALPHA 1\n\t\t#define VFX_HAS_INDIRECT_DRAW
1\n\t\t#define USE_FLIPBOOK 1\n\t\t#define USE_FLIPBOOK_INTERPOLATION 1\n\t\t#define
VFX_BYPASS_EXPOSURE 1\n\t\t#define VFX_PRIMITIVE_OCTAGON 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_BYPASS_EXPOSURE 1\n\t\t#define VFX_PRIMITIVE_OCTAGON 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_WORLD_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
float4 Size_b;\n\t\t float gradient_c;\n\t\t uint3 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct
Attributes\n\t\t{\n\t\t float3 position;\n\t\t float lifetime;\n\t\t

pivotX;\n\t\t float pivotY;\n\t\t float pivotZ;\n\t\t float size;\n\t\t
float scaleX;\n\t\t float scaleY;\n\t\t float scaleZ;\n\t\t float
age;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

1\n#define VFX_USE_SCALEZ_CURRENT 1\n#define VFX_USE_LIFETIME_CURRENT 1\n#define
VFX_USE_PARTICLEID_CURRENT 1\n#define VFX_USE_ALIVE_CURRENT 1\n#define VFX_USE_AGE_CURRENT
1\n#define VFX_WORLD_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float4x4 uniform_b;\n float3 uniform_c;\n float uniform_g;\n float3
uniform_d;\n uint PADDING_0;\n float3 uniform_e;\n uint PADDING_1;\n
float3 uniform_f;\n uint PADDING_2;\nCBUFFER_END\n\nstruct Attributes\n{\n
float4x4 uniform_a;\n float3 uniform_b;\n float uniform_f;\n float3
uniform_c;\n uint PADDING_0;\n float3 uniform_d;\n uint PADDING_1;\n
float3 uniform_e;\n uint PADDING_2;\nCBUFFER_END\n\nstruct Attributes\n{\n
float3 position;\n float3 velocity;\n float size;\n uint seed;\n
float mass;\n float scaleX;\n float scaleY;\n float scaleZ;\n float
lifetime;\n uint particleId;\n bool alive;\n float age;\n};\n\nstruct

0.125f;\n mass = (4.0f / 3.0f) * UNITY_PI * radiusCubed * Density;\n
\n}\nvoid SetAttribute_F01429A3(inout float lifetime, inout uint seed, float
A, float B) /*attribute:lifetime Composition:Overwrite Source:Slot Random:Uniform
channels:XYZ */\n{\n lifetime = lerp(A,B,RAND);\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
channels:XYZ */\n{\n lifetime = lerp(A,B,RAND);\n}\n\n\r\n\r\n// Due to
a bug in HLSL compiler, disable spurious \"unitialized variable\" due to mid
function return statement\r\n#pragma warning(push)\r\n#pragma warning(disable
: 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

float tmp_bo = pow(tmp_bm, (float)0.5);\n float2 tmp_bp = float2(tmp_bo,
tmp_bo);\n float2 tmp_bq = tmp_bl * tmp_bp;\n float tmp_br
= tmp_bq[0];\n float tmp_bs = tmp_bq[1];\n float3 tmp_bu
= float3(tmp_br, tmp_bs, (float)0);\n float3 tmp_bv = uniform_d
* tmp_bu;\n float3 tmp_bw = uniform_c + tmp_bv;\n float3
= float3(tmp_br, tmp_bs, (float)0);\n float3 tmp_bv = uniform_c
* tmp_bu;\n float3 tmp_bw = uniform_b + tmp_bv;\n float3
float4(tmp_bw, 1.0)).xyz;\n float3 tmp_by = mul(uniform_b, float4(tmp_bx,
float4(tmp_bw, 1.0)).xyz;\n float3 tmp_by = mul(uniform_a, float4(tmp_bx,
tmp_by);\n }\n {\n float4 tmp_bg = GeneratePerlinNoise(uniform_e,
tmp_by);\n }\n {\n float4 tmp_bg = GeneratePerlinNoise(uniform_d,
float3(1, 0.5, 2).x, (int)1, float3(1, 0.5, 2).y, float3(1, 0.5, 2).z);\n
float tmp_bh = tmp_bg[1];\n float tmp_bj = tmp_bh * (float)2;\n
float tmp_bk = tmp_bg[2];\n float tmp_bl = tmp_bk * (float)2;\n

2, 2);\n float3 tmp_bu = tmp_bs * float3(0.400000006, 0, 0.400000006);\n
float3 tmp_bv = float3(-0.200000003, 0, -0.200000003) + tmp_bu;\n
float3 tmp_bw = tmp_bv + uniform_f;\n uint tmp_by = attributes.particleId
^ asuint(uniform_g);\n float tmp_bz = FixedRand(tmp_by);\n
float3 tmp_bw = tmp_bv + uniform_e;\n uint tmp_by = attributes.particleId
^ asuint(uniform_f);\n float tmp_bz = FixedRand(tmp_by);\n
float tmp_cb = tmp_bz * (float)0.800000012;\n float tmp_cc = (float)0.200000003
+ tmp_cb;\n float3 tmp_cd = float3(tmp_cc, tmp_cc, tmp_cc);\n
float3 tmp_ce = tmp_bw * tmp_cd;\n float tmp_cg = Rand(attributes.seed);\n

2, 2);\n float3 tmp_cv = tmp_cu * float3(2, 2, 2);\n
float3 tmp_cw = float3(-1, -1, -1) + tmp_cv;\n float3 tmp_cy = tmp_cw
* float3(0.400000006, 0.400000006, 0.400000006);\n float3 tmp_cz
= tmp_ce + tmp_cy;\n float3 tmp_da = mul((float3x3)uniform_b, tmp_cz);\n
= tmp_ce + tmp_cy;\n float3 tmp_da = mul((float3x3)uniform_a, tmp_cz);\n
SetAttribute_E629755( /*inout */attributes.velocity, tmp_da);\n }\n
{\n SetAttribute_3278B545( /*inout */attributes.size, /*inout */attributes.seed,
(float)0.0199999996, (float)0.0399999991);\n }\n {\n

1\n#define VFX_USE_MASS_CURRENT 1\n#define VFX_USE_LIFETIME_CURRENT 1\n#define
VFX_USE_ALIVE_CURRENT 1\n#define VFX_USE_AGE_CURRENT 1\n#define VFX_WORLD_SPACE
1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float3 uniform_c;\n float deltaTime_a;\nCBUFFER_END\n\nstruct Attributes\n{\n
float3 uniform_a;\n float deltaTime_a;\nCBUFFER_END\n\nstruct Attributes\n{\n
float3 position;\n float3 velocity;\n float mass;\n float lifetime;\n
bool alive;\n float age;\n};\n\nstruct SourceAttributes\n{\n};\n\n\n\r\n\r\n#define
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer

stripData = GetStripDataFromParticleIndex(index, PARTICLE_PER_STRIP_COUNT);\r\n
InitStripAttributes(index, attributes, stripData);\r\n#endif\r\n\t\t\t\r\n\t\t\t{\n\t\t\t
Gravity( /*inout */attributes.velocity, float3(0, 0.200000003, 0), deltaTime_a);\n\t\t\t}\n\t\t\t{\n\t\t\t
float3 tmp_z = attributes.position + uniform_c;\n\t\t\t float3 tmp_bc =
float3 tmp_z = attributes.position + uniform_a;\n\t\t\t float3 tmp_bc =
GeneratePerlinCurlNoise(tmp_z, float3(5, 0.5, 2).x, (int)1, float3(5, 0.5,
2).y, float3(5, 0.5, 2).z);\n\t\t\t float3 tmp_be = tmp_bc * float3(0.00999999978,
0.00999999978, 0.00999999978);\n\t\t\t Force_0( /*inout */attributes.velocity,

stripData = GetStripDataFromParticleIndex(index, PARTICLE_PER_STRIP_COUNT);\r\n
InitStripAttributes(index, attributes, stripData);\r\n#endif\r\n\t\t\r\n\t\t{\n\t\t
Gravity( /*inout */attributes.velocity, float3(0, 0.200000003, 0), deltaTime_a);\n\t\t}\n\t\t{\n\t\t
float3 tmp_z = attributes.position + uniform_c;\n\t\t float3 tmp_bc = GeneratePerlinCurlNoise(tmp_z,
float3 tmp_z = attributes.position + uniform_a;\n\t\t float3 tmp_bc = GeneratePerlinCurlNoise(tmp_z,
float3(5, 0.5, 2).x, (int)1, float3(5, 0.5, 2).y, float3(5, 0.5, 2).z);\n\t\t
float3 tmp_be = tmp_bc * float3(0.00999999978, 0.00999999978, 0.00999999978);\n\t\t
Force_0( /*inout */attributes.velocity, attributes.mass, tmp_be, deltaTime_a);\n\t\t}\n\t\t{\n\t\t

name: '[Sparks]Output Particle Quad'
source: "Shader \"Hidden/VFX/Sparks/Sparks/Output Particle Quad\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\"
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
SrcAlpha One \n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

VFX_USE_PIVOTY_CURRENT 1\n\t\t#define VFX_USE_PIVOTZ_CURRENT 1\n\t\t#define
VFX_USE_AGE_CURRENT 1\n\t\t#define VFX_COLORMAPPING_GRADIENTMAPPED 1\n\t\t#define
IS_TRANSPARENT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_ADD 1\n\t\t#define USE_EXPOSURE_WEIGHT
1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_WORLD_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
float4 Scale_c;\n\t\t float gradient_d;\n\t\t float gradient;\n\t\t
uint2 PADDING_0;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct Attributes\n\t\t{\n\t\t

float3 axisY;\n\t\t float3 axisZ;\n\t\t float angleX;\n\t\t float
angleY;\n\t\t float angleZ;\n\t\t float pivotX;\n\t\t float pivotY;\n\t\t
float pivotZ;\n\t\t float age;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

index: 3
temporaryBuffers: []
values:
- nameId: uniform_b
- nameId: uniform_a
- nameId: uniform_c
- nameId: uniform_b
index: 26
params:
- nameId: bounds_center

index: 6
temporaryBuffers: []
values:
- nameId: uniform_b
- nameId: uniform_a
- nameId: uniform_c
- nameId: uniform_b
- nameId: uniform_d
- nameId: uniform_c
index: 23
params: []
processor: {fileID: 0}

index: 5
temporaryBuffers: []
values:
- nameId: uniform_a
index: 6
index: 6
- nameId: uniform_c
index: 4
- nameId: Size_c
index: 91

index: 9
temporaryBuffers: []
values:
- nameId: uniform_a
index: 4
index: 4
index: 28
index: 28
index: 26
index: 26
- nameId: uniform_e
- nameId: uniform_f
- nameId: uniform_e
- nameId: uniform_f
index: 23
index: 23
- nameId: uniform_h
index: 44
params:
- nameId: bounds_center

index: 12
temporaryBuffers: []
values:
- nameId: uniform_b
- nameId: uniform_a
- nameId: uniform_c
- nameId: uniform_b
index: 10
- nameId: deltaTime_a
index: 48

index: 15
temporaryBuffers: []
values:
- nameId: uniform_b
- nameId: uniform_a
- nameId: uniform_c
- nameId: uniform_b
- nameId: uniform_d
- nameId: uniform_c
- nameId: uniform_e
- nameId: uniform_d
- nameId: uniform_f
- nameId: uniform_e
- nameId: uniform_g
- nameId: uniform_f
index: 23
params:
- nameId: bounds_center

values:
- nameId: deltaTime_a
index: 48
- nameId: uniform_c
- nameId: uniform_a
index: 10
params: []
processor: {fileID: 0}

301
Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/VFX/Lightning.vfx


/*attribute:stripProgress Composition:Overwrite Random:Off AttributeType:Float
*/\n{\n stripProgress = _StripProgress;\n}\nvoid SetAttribute_F0142CB9(inout
float lifetime, float Lifetime) /*attribute:lifetime Composition:Overwrite
Source:Slot Random:Off channels:XYZ */\n{\n lifetime = Lifetime;\n}\n\n\r\n\r\n#if
HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
Source:Slot Random:Off channels:XYZ */\n{\n lifetime = Lifetime;\n}\n\n\r\n\r\n//
Due to a bug in HLSL compiler, disable spurious \"unitialized variable\" due
to mid function return statement\r\n#pragma warning(push)\r\n#pragma warning(disable
: 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex,
uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

float uniform_b;\n float uniform_c;\n float uniform_d;\n float deltaTime_b;\nCBUFFER_END\n\nstruct
Attributes\n{\n float stripProgress;\n float lifetime;\n float3 position;\n
float age;\n bool alive;\n};\n\nstruct SourceAttributes\n{\n};\n\nTexture2D
texture_b;\nSamplerState samplertexture_b;\nfloat4 texture_b_TexelSize;\n\n\r\n\r\n#define
texture_a;\nSamplerState samplertexture_a;\nfloat4 texture_a_TexelSize;\n\n\n\r\n\r\n#define
USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT && !HAS_STRIPS)\r\n\r\nRWByteAddressBuffer
attributeBuffer;\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint> deadListOut;\r\n#endif\r\n\r\n#if
VFX_HAS_INDIRECT_DRAW\r\nRWStructuredBuffer<uint> indirectBuffer;\r\n#endif\r\n\r\n#if

= (uint)tmp_ba;\n\t\t\t uint tmp_bd = tmp_bb > (uint)0 ? tmp_bb : (uint)0;\n\t\t\t
uint tmp_be = tmp_bd < asuint(uniform_c) ? tmp_bd : asuint(uniform_c);\n\t\t\t
float tmp_bf = (float)tmp_be;\n\t\t\t float3 tmp_bh = float3(tmp_bf, (float)0,
(float)0);\n\t\t\t float4 tmp_bi = LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_bh);\n\t\t\t
(float)0);\n\t\t\t float4 tmp_bi = LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_bh);\n\t\t\t
float tmp_bj = tmp_bi[0];\n\t\t\t float tmp_bk = tmp_bi[1];\n\t\t\t float
tmp_bl = tmp_bi[2];\n\t\t\t float3 tmp_bm = float3(tmp_bj, tmp_bk, tmp_bl);\n\t\t\t
float tmp_bo = frac(tmp_ba);\n\t\t\t float tmp_bp = max(tmp_bo, (float)0);\n\t\t\t

int tmp_bz = tmp_bx + (int)1;\n\t\t\t int tmp_cb = max(tmp_bz, (int)0);\n\t\t\t
int tmp_cc = min(tmp_cb, asint(uniform_d));\n\t\t\t uint tmp_cd = (uint)tmp_cc;\n\t\t\t
float tmp_ce = (float)tmp_cd;\n\t\t\t float3 tmp_cf = float3(tmp_ce, (float)0,
(float)0);\n\t\t\t float4 tmp_cg = LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_cf);\n\t\t\t
(float)0);\n\t\t\t float4 tmp_cg = LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_cf);\n\t\t\t
float tmp_ch = tmp_cg[0];\n\t\t\t float tmp_ci = tmp_cg[1];\n\t\t\t float
tmp_cj = tmp_cg[2];\n\t\t\t float3 tmp_ck = float3(tmp_ch, tmp_ci, tmp_cj);\n\t\t\t
uint tmp_cm = tmp_bb + (uint)4294967295;\n\t\t\t int tmp_cn = (int)tmp_cm;\n\t\t\t

= LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_cs);\n\t\t\t float tmp_cu
= LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_cs);\n\t\t\t float tmp_cu
= tmp_ct[0];\n\t\t\t float tmp_cv = tmp_ct[1];\n\t\t\t float tmp_cw =
tmp_ct[2];\n\t\t\t float3 tmp_cx = float3(tmp_cu, tmp_cv, tmp_cw);\n\t\t\t
float3 tmp_cy = tmp_ck - tmp_cx;\n\t\t\t float3 tmp_cz = tmp_cy * tmp_cy;\n\t\t\t

int tmp_eq = max(tmp_ep, (int)0);\n\t\t\t int tmp_er = min(tmp_eq, asint(uniform_d));\n\t\t\t
uint tmp_es = (uint)tmp_er;\n\t\t\t float tmp_et = (float)tmp_es;\n\t\t\t
float3 tmp_eu = float3(tmp_et, (float)0, (float)0);\n\t\t\t float4 tmp_ev
= LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_eu);\n\t\t\t float tmp_ew
= LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_eu);\n\t\t\t float tmp_ew
= tmp_ev[0];\n\t\t\t float tmp_ex = tmp_ev[1];\n\t\t\t float tmp_ey =
tmp_ev[2];\n\t\t\t float3 tmp_ez = float3(tmp_ew, tmp_ex, tmp_ey);\n\t\t\t
float3 tmp_fa = tmp_ez - tmp_bm;\n\t\t\t float3 tmp_fb = tmp_fa * tmp_fa;\n\t\t\t

> (uint)0 ? tmp_bb : (uint)0;\n\t\t uint tmp_be = tmp_bd < asuint(uniform_c)
? tmp_bd : asuint(uniform_c);\n\t\t float tmp_bf = (float)tmp_be;\n\t\t
float3 tmp_bh = float3(tmp_bf, (float)0, (float)0);\n\t\t float4 tmp_bi
= LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_bh);\n\t\t float tmp_bj =
= LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_bh);\n\t\t float tmp_bj =
tmp_bi[0];\n\t\t float tmp_bk = tmp_bi[1];\n\t\t float tmp_bl = tmp_bi[2];\n\t\t
float3 tmp_bm = float3(tmp_bj, tmp_bk, tmp_bl);\n\t\t float tmp_bo = frac(tmp_ba);\n\t\t
float tmp_bp = max(tmp_bo, (float)0);\n\t\t float tmp_bq = min(tmp_bp, (float)1);\n\t\t

max(tmp_bz, (int)0);\n\t\t int tmp_cc = min(tmp_cb, asint(uniform_d));\n\t\t
uint tmp_cd = (uint)tmp_cc;\n\t\t float tmp_ce = (float)tmp_cd;\n\t\t
float3 tmp_cf = float3(tmp_ce, (float)0, (float)0);\n\t\t float4 tmp_cg
= LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_cf);\n\t\t float tmp_ch =
= LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_cf);\n\t\t float tmp_ch =
tmp_cg[0];\n\t\t float tmp_ci = tmp_cg[1];\n\t\t float tmp_cj = tmp_cg[2];\n\t\t
float3 tmp_ck = float3(tmp_ch, tmp_ci, tmp_cj);\n\t\t uint tmp_cm = tmp_bb
+ (uint)4294967295;\n\t\t int tmp_cn = (int)tmp_cm;\n\t\t int tmp_co

= LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_cs);\n\t\t float tmp_cu =
= LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_cs);\n\t\t float tmp_cu =
tmp_ct[0];\n\t\t float tmp_cv = tmp_ct[1];\n\t\t float tmp_cw = tmp_ct[2];\n\t\t
float3 tmp_cx = float3(tmp_cu, tmp_cv, tmp_cw);\n\t\t float3 tmp_cy = tmp_ck
- tmp_cx;\n\t\t float3 tmp_cz = tmp_cy * tmp_cy;\n\t\t float tmp_da =

max(tmp_ep, (int)0);\n\t\t int tmp_er = min(tmp_eq, asint(uniform_d));\n\t\t
uint tmp_es = (uint)tmp_er;\n\t\t float tmp_et = (float)tmp_es;\n\t\t
float3 tmp_eu = float3(tmp_et, (float)0, (float)0);\n\t\t float4 tmp_ev
= LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_eu);\n\t\t float tmp_ew =
= LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_eu);\n\t\t float tmp_ew =
tmp_ev[0];\n\t\t float tmp_ex = tmp_ev[1];\n\t\t float tmp_ey = tmp_ev[2];\n\t\t
float3 tmp_ez = float3(tmp_ew, tmp_ex, tmp_ey);\n\t\t float3 tmp_fa = tmp_ez
- tmp_bm;\n\t\t float3 tmp_fb = tmp_fa * tmp_fa;\n\t\t float tmp_fc =

name: '[Ark Base]Output ParticleStrip Quad'
source: "Shader \"Hidden/VFX/Lightning/Ark Base/Output ParticleStrip Quad\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\"
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
SrcAlpha OneMinusSrcAlpha \n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

1u\n\t\t#define PARTICLE_PER_STRIP_COUNT 1024u\n\t\t#define VFX_COLORMAPPING_DEFAULT
1\n\t\t#define IS_TRANSPARENT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_ALPHA 1\n\t\t#define
VFX_BYPASS_EXPOSURE 1\n\t\t#define HAS_STRIPS 1\n\t\t#define VFX_STRIPS_UV_STRECHED
1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
1\n\t\t#define VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
float4 Size_b;\n\t\t float4 uniform_c;\n\t\t float4 uniform_d;\n\t\t
float4 Size_b;\n\t\t float4 uniform_a;\n\t\t float4 uniform_b;\n\t\t
float4 Alpha_g;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct Attributes\n\t\t{\n\t\t
float stripProgress;\n\t\t float lifetime;\n\t\t float3 position;\n\t\t
float3 color;\n\t\t float alpha;\n\t\t float3 axisX;\n\t\t float3

float scaleZ;\n\t\t float age;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

/*inout */attributes.scaleY);\n\t\t\t\t{\n\t\t\t\t SetAttribute_FDD06EC7(
/*inout */attributes.color, float3(2.76078439, 34.8862762, 64));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
float tmp_bd = attributes.age / attributes.lifetime;\n\t\t\t\t float tmp_be
= SampleCurve(uniform_c,tmp_bd);\n\t\t\t\t float tmp_bg = tmp_be + (float)-0.0250000004;\n\t\t\t\t
= SampleCurve(uniform_a,tmp_bd);\n\t\t\t\t float tmp_bg = tmp_be + (float)-0.0250000004;\n\t\t\t\t
float tmp_bh = attributes.stripProgress - tmp_bg;\n\t\t\t\t float tmp_bj
= tmp_be + (float)0.0250000004;\n\t\t\t\t float tmp_bk = tmp_bj - tmp_bg;\n\t\t\t\t
float tmp_bl = tmp_bh / tmp_bk;\n\t\t\t\t float tmp_bn = max(tmp_bl, (float)0);\n\t\t\t\t

*/attributes.alpha, tmp_bt);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t float tmp_ba
= attributes.age / attributes.lifetime;\n\t\t\t\t float tmp_bc = attributes.stripProgress
* (float)0.200000003;\n\t\t\t\t float tmp_bd = tmp_ba - tmp_bc;\n\t\t\t\t
float tmp_be = SampleCurve(uniform_d,tmp_bd);\n\t\t\t\t float3 tmp_bf =
float tmp_be = SampleCurve(uniform_b,tmp_bd);\n\t\t\t\t float3 tmp_bf =
float3(tmp_be, tmp_be, tmp_be);\n\t\t\t\t SetAttribute_545F0ED( /*inout
*/attributes.color, tmp_bf);\n\t\t\t\t}\n\t\t\t\tAttributeFromCurve_7BA3F6A(
/*inout */attributes.alpha, attributes.age, attributes.lifetime, Alpha_g);\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

/*inout */attributes.scaleY);\n\t\t\t\t{\n\t\t\t\t SetAttribute_FDD06EC7(
/*inout */attributes.color, float3(2.76078439, 34.8862762, 64));\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t
float tmp_bd = attributes.age / attributes.lifetime;\n\t\t\t\t float tmp_be
= SampleCurve(uniform_c,tmp_bd);\n\t\t\t\t float tmp_bg = tmp_be + (float)-0.0250000004;\n\t\t\t\t
= SampleCurve(uniform_a,tmp_bd);\n\t\t\t\t float tmp_bg = tmp_be + (float)-0.0250000004;\n\t\t\t\t
float tmp_bh = attributes.stripProgress - tmp_bg;\n\t\t\t\t float tmp_bj
= tmp_be + (float)0.0250000004;\n\t\t\t\t float tmp_bk = tmp_bj - tmp_bg;\n\t\t\t\t
float tmp_bl = tmp_bh / tmp_bk;\n\t\t\t\t float tmp_bn = max(tmp_bl, (float)0);\n\t\t\t\t

*/attributes.alpha, tmp_bt);\n\t\t\t\t}\n\t\t\t\t{\n\t\t\t\t float tmp_ba
= attributes.age / attributes.lifetime;\n\t\t\t\t float tmp_bc = attributes.stripProgress
* (float)0.200000003;\n\t\t\t\t float tmp_bd = tmp_ba - tmp_bc;\n\t\t\t\t
float tmp_be = SampleCurve(uniform_d,tmp_bd);\n\t\t\t\t float3 tmp_bf =
float tmp_be = SampleCurve(uniform_b,tmp_bd);\n\t\t\t\t float3 tmp_bf =
float3(tmp_be, tmp_be, tmp_be);\n\t\t\t\t SetAttribute_545F0ED( /*inout
*/attributes.color, tmp_bf);\n\t\t\t\t}\n\t\t\t\tAttributeFromCurve_7BA3F6A(
/*inout */attributes.alpha, attributes.age, attributes.lifetime, Alpha_g);\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t#if

Source:Slot Random:Uniform channels:XYZ */\n{\n age = lerp(A,B,RAND);\n}\nvoid
SetAttribute_F01429A3(inout float lifetime, inout uint seed, float A, float
B) /*attribute:lifetime Composition:Overwrite Source:Slot Random:Uniform channels:XYZ
*/\n{\n lifetime = lerp(A,B,RAND);\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
*/\n{\n lifetime = lerp(A,B,RAND);\n}\n\n\r\n\r\n// Due to a bug in HLSL
compiler, disable spurious \"unitialized variable\" due to mid function return
statement\r\n#pragma warning(push)\r\n#pragma warning(disable : 4000)\r\n#if
HAS_STRIPS\r\nbool GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

uniform_d;\n float deltaTime_d;\nCBUFFER_END\n\nstruct Attributes\n{\n
float3 velocity;\n float age;\n float lifetime;\n float stripProgress;\n
float3 position;\n float3 direction;\n float rateCount_d;\n uint eventCount;\n
bool alive;\n};\n\nstruct SourceAttributes\n{\n};\n\nTexture2D texture_b;\nSamplerState
samplertexture_b;\nfloat4 texture_b_TexelSize;\nAppendStructuredBuffer<uint>
bool alive;\n};\n\nstruct SourceAttributes\n{\n};\n\nTexture2D texture_a;\nSamplerState
samplertexture_a;\nfloat4 texture_a_TexelSize;\n\nAppendStructuredBuffer<uint>
eventListOut_a;\n\n\r\n\r\n#define USE_DEAD_LIST (VFX_USE_ALIVE_CURRENT &&
!HAS_STRIPS)\r\n\r\nRWByteAddressBuffer attributeBuffer;\r\n\r\n#if USE_DEAD_LIST\r\nRWStructuredBuffer<uint>
deadListOut;\r\n#endif\r\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\nRWStructuredBuffer<uint>

uint tmp_t = tmp_r > (uint)0 ? tmp_r : (uint)0;\n\t\t\t uint tmp_u = tmp_t
< asuint(uniform_c) ? tmp_t : asuint(uniform_c);\n\t\t\t float tmp_v = (float)tmp_u;\n\t\t\t
float3 tmp_x = float3(tmp_v, (float)0, (float)0);\n\t\t\t float4 tmp_y =
LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_x);\n\t\t\t float tmp_z = tmp_y[0];\n\t\t\t
LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_x);\n\t\t\t float tmp_z = tmp_y[0];\n\t\t\t
float tmp_ba = tmp_y[1];\n\t\t\t float tmp_bb = tmp_y[2];\n\t\t\t float3
tmp_bc = float3(tmp_z, tmp_ba, tmp_bb);\n\t\t\t float tmp_be = frac(tmp_q);\n\t\t\t
float tmp_bf = max(tmp_be, (float)0);\n\t\t\t float tmp_bg = min(tmp_bf,

int tmp_br = max(tmp_bp, (int)0);\n\t\t\t int tmp_bs = min(tmp_br, asint(uniform_d));\n\t\t\t
uint tmp_bt = (uint)tmp_bs;\n\t\t\t float tmp_bu = (float)tmp_bt;\n\t\t\t
float3 tmp_bv = float3(tmp_bu, (float)0, (float)0);\n\t\t\t float4 tmp_bw
= LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_bv);\n\t\t\t float tmp_bx
= LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_bv);\n\t\t\t float tmp_bx
= tmp_bw[0];\n\t\t\t float tmp_by = tmp_bw[1];\n\t\t\t float tmp_bz =
tmp_bw[2];\n\t\t\t float3 tmp_ca = float3(tmp_bx, tmp_by, tmp_bz);\n\t\t\t
uint tmp_cc = tmp_r + (uint)4294967295;\n\t\t\t int tmp_cd = (int)tmp_cc;\n\t\t\t

= LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_ci);\n\t\t\t float tmp_ck
= LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_ci);\n\t\t\t float tmp_ck
= tmp_cj[0];\n\t\t\t float tmp_cl = tmp_cj[1];\n\t\t\t float tmp_cm =
tmp_cj[2];\n\t\t\t float3 tmp_cn = float3(tmp_ck, tmp_cl, tmp_cm);\n\t\t\t
float3 tmp_co = tmp_ca - tmp_cn;\n\t\t\t float3 tmp_cp = tmp_co * tmp_co;\n\t\t\t

tmp_eg = max(tmp_ef, (int)0);\n\t\t\t int tmp_eh = min(tmp_eg, asint(uniform_d));\n\t\t\t
uint tmp_ei = (uint)tmp_eh;\n\t\t\t float tmp_ej = (float)tmp_ei;\n\t\t\t
float3 tmp_ek = float3(tmp_ej, (float)0, (float)0);\n\t\t\t float4 tmp_el
= LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_ek);\n\t\t\t float tmp_em
= LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_ek);\n\t\t\t float tmp_em
= tmp_el[0];\n\t\t\t float tmp_en = tmp_el[1];\n\t\t\t float tmp_eo =
tmp_el[2];\n\t\t\t float3 tmp_ep = float3(tmp_em, tmp_en, tmp_eo);\n\t\t\t
float3 tmp_eq = tmp_ep - tmp_bc;\n\t\t\t float3 tmp_er = tmp_eq * tmp_eq;\n\t\t\t

tmp_bd = tmp_bb > (uint)0 ? tmp_bb : (uint)0;\n\t\t\t uint tmp_be = tmp_bd
< asuint(uniform_c) ? tmp_bd : asuint(uniform_c);\n\t\t\t float tmp_bf =
(float)tmp_be;\n\t\t\t float3 tmp_bg = float3(tmp_bf, (float)0, (float)0);\n\t\t\t
float4 tmp_bh = LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_bg);\n\t\t\t
float4 tmp_bh = LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_bg);\n\t\t\t
float tmp_bi = tmp_bh[0];\n\t\t\t float tmp_bj = tmp_bh[1];\n\t\t\t float
tmp_bk = tmp_bh[2];\n\t\t\t float3 tmp_bl = float3(tmp_bi, tmp_bj, tmp_bk);\n\t\t\t
int tmp_bm = (int)tmp_bb;\n\t\t\t int tmp_bo = tmp_bm + (int)1;\n\t\t\t

= LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_bu);\n\t\t\t float tmp_bw
= LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_bu);\n\t\t\t float tmp_bw
= tmp_bv[0];\n\t\t\t float tmp_bx = tmp_bv[1];\n\t\t\t float tmp_by =
tmp_bv[2];\n\t\t\t float3 tmp_bz = float3(tmp_bw, tmp_bx, tmp_by);\n\t\t\t
uint tmp_cb = tmp_bb + (uint)4294967295;\n\t\t\t int tmp_cc = (int)tmp_cb;\n\t\t\t

= LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_ch);\n\t\t\t float tmp_cj
= LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_ch);\n\t\t\t float tmp_cj
= tmp_ci[0];\n\t\t\t float tmp_ck = tmp_ci[1];\n\t\t\t float tmp_cl =
tmp_ci[2];\n\t\t\t float3 tmp_cm = float3(tmp_cj, tmp_ck, tmp_cl);\n\t\t\t
float3 tmp_cn = tmp_bz - tmp_cm;\n\t\t\t float3 tmp_co = tmp_cn * tmp_cn;\n\t\t\t

int tmp_ee = (int)tmp_ed;\n\t\t\t int tmp_ef = max(tmp_ee, (int)0);\n\t\t\t
int tmp_eg = min(tmp_ef, asint(uniform_d));\n\t\t\t uint tmp_eh = (uint)tmp_eg;\n\t\t\t
float tmp_ei = (float)tmp_eh;\n\t\t\t float3 tmp_ej = float3(tmp_ei, (float)0,
(float)0);\n\t\t\t float4 tmp_ek = LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_ej);\n\t\t\t
(float)0);\n\t\t\t float4 tmp_ek = LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_ej);\n\t\t\t
float tmp_el = tmp_ek[0];\n\t\t\t float tmp_em = tmp_ek[1];\n\t\t\t float
tmp_en = tmp_ek[2];\n\t\t\t float3 tmp_eo = float3(tmp_el, tmp_em, tmp_en);\n\t\t\t
float3 tmp_ep = tmp_eo - tmp_bl;\n\t\t\t float3 tmp_eq = tmp_ep * tmp_ep;\n\t\t\t

* 0x8 + 0x84) << 2,asuint(attributes.stripProgress));\n\t\t\t\tattributeBuffer.Store3((index
* 0x8 + 0x80) << 2,asuint(attributes.position));\n\t\t\t\tattributeBuffer.Store3((index
* 0x4 + 0x180) << 2,asuint(attributes.direction));\n\t\t\t\tattributeBuffer.Store((index
* 0x8 + 0x85) << 2,asuint(attributes.rateCount_d));\n\t\t\t\tfor (uint i =
0; i < eventCount_a; ++i) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if
* 0x8 + 0x85) << 2,asuint(attributes.rateCount_d));\n\t\t\t\tfor (uint ia =
0; ia < eventCount_a; ++ia) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if
* 0x8 + 0x86) << 2,uint(attributes.alive));\n\t\t\t\tfor (uint i = 0; i < eventCount_a;
++i) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if USE_DEAD_LIST && !VFX_USE_STRIPALIVE_CURRENT\r\n\t\t\t\tuint
deadIndex = deadListOut.IncrementCounter();\r\n\t\t\t\tdeadListOut[deadIndex]
* 0x8 + 0x86) << 2,uint(attributes.alive));\n\t\t\t\tfor (uint ia = 0; ia <
eventCount_a; ++ia) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if USE_DEAD_LIST
&& !VFX_USE_STRIPALIVE_CURRENT\r\n\t\t\t\tuint deadIndex = deadListOut.IncrementCounter();\r\n\t\t\t\tdeadListOut[deadIndex]
= index;\r\n#endif\r\n\t\t\t}\r\n\t\t}\r\n#if USE_DEAD_LIST && VFX_USE_STRIPALIVE_CURRENT\r\n
else if (attributes.stripAlive)\r\n {\r\n if (STRIP_DATA_X(attachedStripDataBuffer,
STRIP_MIN_ALIVE, index) == ~1) // Attached strip is no longer alive, recycle

= attributes.stripProgress * uniform_b;\n\t\t uint tmp_r = (uint)tmp_q;\n\t\t
uint tmp_t = tmp_r > (uint)0 ? tmp_r : (uint)0;\n\t\t uint tmp_u = tmp_t
< asuint(uniform_c) ? tmp_t : asuint(uniform_c);\n\t\t float tmp_v = (float)tmp_u;\n\t\t
float3 tmp_x = float3(tmp_v, (float)0, (float)0);\n\t\t float4 tmp_y = LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_x);\n\t\t
float3 tmp_x = float3(tmp_v, (float)0, (float)0);\n\t\t float4 tmp_y = LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_x);\n\t\t
float tmp_z = tmp_y[0];\n\t\t float tmp_ba = tmp_y[1];\n\t\t float tmp_bb
= tmp_y[2];\n\t\t float3 tmp_bc = float3(tmp_z, tmp_ba, tmp_bb);\n\t\t
float tmp_be = frac(tmp_q);\n\t\t float tmp_bf = max(tmp_be, (float)0);\n\t\t

tmp_bn + (int)1;\n\t\t int tmp_br = max(tmp_bp, (int)0);\n\t\t int tmp_bs
= min(tmp_br, asint(uniform_d));\n\t\t uint tmp_bt = (uint)tmp_bs;\n\t\t
float tmp_bu = (float)tmp_bt;\n\t\t float3 tmp_bv = float3(tmp_bu, (float)0,
(float)0);\n\t\t float4 tmp_bw = LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_bv);\n\t\t
(float)0);\n\t\t float4 tmp_bw = LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_bv);\n\t\t
float tmp_bx = tmp_bw[0];\n\t\t float tmp_by = tmp_bw[1];\n\t\t float
tmp_bz = tmp_bw[2];\n\t\t float3 tmp_ca = float3(tmp_bx, tmp_by, tmp_bz);\n\t\t
uint tmp_cc = tmp_r + (uint)4294967295;\n\t\t int tmp_cd = (int)tmp_cc;\n\t\t

= LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_ci);\n\t\t float tmp_ck =
= LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_ci);\n\t\t float tmp_ck =
tmp_cj[0];\n\t\t float tmp_cl = tmp_cj[1];\n\t\t float tmp_cm = tmp_cj[2];\n\t\t
float3 tmp_cn = float3(tmp_ck, tmp_cl, tmp_cm);\n\t\t float3 tmp_co = tmp_ca
- tmp_cn;\n\t\t float3 tmp_cp = tmp_co * tmp_co;\n\t\t float tmp_cq =

tmp_r + (uint)2;\n\t\t int tmp_ef = (int)tmp_ee;\n\t\t int tmp_eg = max(tmp_ef,
(int)0);\n\t\t int tmp_eh = min(tmp_eg, asint(uniform_d));\n\t\t uint
tmp_ei = (uint)tmp_eh;\n\t\t float tmp_ej = (float)tmp_ei;\n\t\t float3
tmp_ek = float3(tmp_ej, (float)0, (float)0);\n\t\t float4 tmp_el = LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_ek);\n\t\t
tmp_ek = float3(tmp_ej, (float)0, (float)0);\n\t\t float4 tmp_el = LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_ek);\n\t\t
float tmp_em = tmp_el[0];\n\t\t float tmp_en = tmp_el[1];\n\t\t float
tmp_eo = tmp_el[2];\n\t\t float3 tmp_ep = float3(tmp_em, tmp_en, tmp_eo);\n\t\t
float3 tmp_eq = tmp_ep - tmp_bc;\n\t\t float3 tmp_er = tmp_eq * tmp_eq;\n\t\t

uint tmp_bd = tmp_bb > (uint)0 ? tmp_bb : (uint)0;\n\t\t uint tmp_be = tmp_bd
< asuint(uniform_c) ? tmp_bd : asuint(uniform_c);\n\t\t float tmp_bf = (float)tmp_be;\n\t\t
float3 tmp_bg = float3(tmp_bf, (float)0, (float)0);\n\t\t float4 tmp_bh
= LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_bg);\n\t\t float tmp_bi =
= LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_bg);\n\t\t float tmp_bi =
(float)0);\n\t\t float4 tmp_bv = LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_bu);\n\t\t
(float)0);\n\t\t float4 tmp_bv = LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_bu);\n\t\t
float tmp_bw = tmp_bv[0];\n\t\t float tmp_bx = tmp_bv[1];\n\t\t float
tmp_by = tmp_bv[2];\n\t\t float3 tmp_bz = float3(tmp_bw, tmp_bx, tmp_by);\n\t\t
uint tmp_cb = tmp_bb + (uint)4294967295;\n\t\t int tmp_cc = (int)tmp_cb;\n\t\t

= LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_ch);\n\t\t float tmp_cj =
= LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_ch);\n\t\t float tmp_cj =
tmp_ci[0];\n\t\t float tmp_ck = tmp_ci[1];\n\t\t float tmp_cl = tmp_ci[2];\n\t\t
float3 tmp_cm = float3(tmp_cj, tmp_ck, tmp_cl);\n\t\t float3 tmp_cn = tmp_bz
- tmp_cm;\n\t\t float3 tmp_co = tmp_cn * tmp_cn;\n\t\t float tmp_cp =

int tmp_ee = (int)tmp_ed;\n\t\t int tmp_ef = max(tmp_ee, (int)0);\n\t\t
int tmp_eg = min(tmp_ef, asint(uniform_d));\n\t\t uint tmp_eh = (uint)tmp_eg;\n\t\t
float tmp_ei = (float)tmp_eh;\n\t\t float3 tmp_ej = float3(tmp_ei, (float)0,
(float)0);\n\t\t float4 tmp_ek = LoadTexture(VFX_SAMPLER(texture_b),(int3)tmp_ej);\n\t\t
(float)0);\n\t\t float4 tmp_ek = LoadTexture(VFX_SAMPLER(texture_a),(int3)tmp_ej);\n\t\t
float tmp_el = tmp_ek[0];\n\t\t float tmp_em = tmp_ek[1];\n\t\t float
tmp_en = tmp_ek[2];\n\t\t float3 tmp_eo = float3(tmp_el, tmp_em, tmp_en);\n\t\t
float3 tmp_ep = tmp_eo - tmp_bl;\n\t\t float3 tmp_eq = tmp_ep * tmp_ep;\n\t\t

* 0x8 + 0x80) << 2,asuint(attributes.position));\n\t\tattributeBuffer.Store3((index
* 0x4 + 0x180) << 2,asuint(attributes.direction));\n\t\tattributeBuffer.Store((index
* 0x8 + 0x85) << 2,asuint(attributes.rateCount_d));\n\t\tattributeBuffer.Store((index
* 0x8 + 0x86) << 2,uint(attributes.alive));\n\t\tfor (uint i = 0; i < eventCount_a;
++i) eventListOut_a.Append(index);\n\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
* 0x8 + 0x86) << 2,uint(attributes.alive));\n\t\tfor (uint ia = 0; ia < eventCount_a;
++ia) eventListOut_a.Append(index);\n\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
uint indirectIndex = indirectBuffer.IncrementCounter();\r\n\t\tindirectBuffer[indirectIndex]
= index;\r\n#endif\r\n#endif\r\n\t}\r\n}\r\n"
- compute: 1

Source:Slot Random:Uniform channels:XYZ */\n{\n lifetime = lerp(A,B,RAND);\n}\nvoid
SetCustomAttribute_A2581241(inout float rateCount_c, float _RateCount_c) /*attribute:rateCount_c
Composition:Overwrite Random:Off AttributeType:Float */\n{\n rateCount_c
= _RateCount_c;\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout
uint particleIndex, uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
= _RateCount_c;\n}\n\n\r\n\r\n// Due to a bug in HLSL compiler, disable spurious
\"unitialized variable\" due to mid function return statement\r\n#pragma warning(push)\r\n#pragma
warning(disable : 4000)\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout uint
particleIndex, uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

1\n#define VFX_USE_ALPHA_CURRENT 1\n#define VFX_USE_AGE_CURRENT 1\n#define
VFX_USE_EVENTCOUNT_CURRENT 1\n#define VFX_USE_ALIVE_CURRENT 1\n#define VFX_USE_STRIPALIVE_CURRENT
1\n#define VFX_WORLD_SPACE 1\n#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\n\r\nCBUFFER_START(parameters)\n
float4 Alpha_b;\n float3 uniform_b;\n float deltaTime_c;\nCBUFFER_END\n\nstruct
float4 Alpha_b;\n float3 uniform_a;\n float deltaTime_c;\nCBUFFER_END\n\nstruct
Attributes\n{\n float3 position;\n float3 velocity;\n float lifetime;\n
float rateCount_c;\n float alpha;\n float age;\n uint eventCount;\n
bool alive;\n bool stripAlive;\n};\n\nstruct SourceAttributes\n{\n};\n\nAppendStructuredBuffer<uint>

float tmp_u = tmp_q[2];\n\t\t\t float tmp_v = tmp_u * (float)2;\n\t\t\t
float tmp_w = tmp_q[3];\n\t\t\t float tmp_x = tmp_w * (float)2;\n\t\t\t
float3 tmp_y = float3(tmp_t, tmp_v, tmp_x);\n\t\t\t float3 tmp_z = tmp_y
* uniform_b;\n\t\t\t float3 tmp_bb = tmp_z * float3(2, 2, 2);\n\t\t\t
* uniform_a;\n\t\t\t float3 tmp_bb = tmp_z * float3(2, 2, 2);\n\t\t\t
SetAttribute_C707D62A( /*inout */attributes.position, tmp_bb);\n\t\t\t}\n\t\t\tAttributeFromCurve_7BA3F6A(
/*inout */attributes.alpha, attributes.age, attributes.lifetime, Alpha_b);\n\t\t\t{\n\t\t\t
attributes.eventCount = 0u;\n\t\t\t GPUEventRate_1( /*inout */attributes.rateCount_c,

* 0x8 + 0x3) << 2,asuint(attributes.rateCount_c));\n\t\t\t\tattributeBuffer.Store((index
* 0x2 + 0x9601) << 2,asuint(attributes.alpha));\n\t\t\t\tattributeBuffer.Store((index
* 0x8 + 0x4) << 2,asuint(attributes.age));\n\t\t\t\tattributeBuffer.Store((index
* 0x8 + 0x6) << 2,uint(attributes.stripAlive));\n\t\t\t\tfor (uint i = 0; i
< eventCount_a; ++i) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
* 0x8 + 0x6) << 2,uint(attributes.stripAlive));\n\t\t\t\tfor (uint ia = 0;
ia < eventCount_a; ++ia) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
* 0x8 + 0x5) << 2,uint(attributes.alive));\n\t\t\t\tfor (uint i = 0; i < eventCount_a;
++i) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if USE_DEAD_LIST && !VFX_USE_STRIPALIVE_CURRENT\r\n\t\t\t\tuint
deadIndex = deadListOut.IncrementCounter();\r\n\t\t\t\tdeadListOut[deadIndex]
* 0x8 + 0x5) << 2,uint(attributes.alive));\n\t\t\t\tfor (uint ia = 0; ia <
eventCount_a; ++ia) eventListOut_a.Append(index);\n\t\t\t\t\n\r\n#if USE_DEAD_LIST
&& !VFX_USE_STRIPALIVE_CURRENT\r\n\t\t\t\tuint deadIndex = deadListOut.IncrementCounter();\r\n\t\t\t\tdeadListOut[deadIndex]
= index;\r\n#endif\r\n\t\t\t}\r\n\t\t}\r\n#if USE_DEAD_LIST && VFX_USE_STRIPALIVE_CURRENT\r\n
else if (attributes.stripAlive)\r\n {\r\n if (STRIP_DATA_X(attachedStripDataBuffer,
STRIP_MIN_ALIVE, index) == ~1) // Attached strip is no longer alive, recycle

float tmp_r = tmp_q[1];\n\t\t float tmp_t = tmp_r * (float)2;\n\t\t float
tmp_u = tmp_q[2];\n\t\t float tmp_v = tmp_u * (float)2;\n\t\t float tmp_w
= tmp_q[3];\n\t\t float tmp_x = tmp_w * (float)2;\n\t\t float3 tmp_y
= float3(tmp_t, tmp_v, tmp_x);\n\t\t float3 tmp_z = tmp_y * uniform_b;\n\t\t
= float3(tmp_t, tmp_v, tmp_x);\n\t\t float3 tmp_z = tmp_y * uniform_a;\n\t\t
float3 tmp_bb = tmp_z * float3(2, 2, 2);\n\t\t SetAttribute_C707D62A( /*inout
*/attributes.position, tmp_bb);\n\t\t}\n\t\tAttributeFromCurve_7BA3F6A( /*inout
*/attributes.alpha, attributes.age, attributes.lifetime, Alpha_b);\n\t\t{\n\t\t

* 0x2 + 0x9601) << 2,asuint(attributes.alpha));\n\t\tattributeBuffer.Store((index
* 0x8 + 0x4) << 2,asuint(attributes.age));\n\t\tattributeBuffer.Store((index
* 0x8 + 0x5) << 2,uint(attributes.alive));\n\t\tattributeBuffer.Store((index
* 0x8 + 0x6) << 2,uint(attributes.stripAlive));\n\t\tfor (uint i = 0; i < eventCount_a;
++i) eventListOut_a.Append(index);\n\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
* 0x8 + 0x6) << 2,uint(attributes.stripAlive));\n\t\tfor (uint ia = 0; ia <
eventCount_a; ++ia) eventListOut_a.Append(index);\n\t\t\n\r\n#if VFX_HAS_INDIRECT_DRAW\r\n
uint indirectIndex = indirectBuffer.IncrementCounter();\r\n\t\tindirectBuffer[indirectIndex]
= index;\r\n#endif\r\n#endif\r\n\t}\r\n}\r\n"
- compute: 1

Composition:Overwrite Source:Source Random:Off channels:XYZ */\n{\n alpha
= Value;\n}\nvoid SetAttribute_F0142CB9(inout float lifetime, float Lifetime)
/*attribute:lifetime Composition:Overwrite Source:Slot Random:Off channels:XYZ
*/\n{\n lifetime = Lifetime;\n}\n\n\r\n\r\n#if HAS_STRIPS\r\nbool GetParticleIndex(inout
uint particleIndex, uint stripIndex)\r\n{\r\n\tuint relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), 1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT)
// strip is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX,
stripIndex), -1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
*/\n{\n lifetime = Lifetime;\n}\n\n\r\n\r\n// Due to a bug in HLSL compiler,
disable spurious \"unitialized variable\" due to mid function return statement\r\n#pragma
warning(push)\r\n#pragma warning(disable : 4000)\r\n#if HAS_STRIPS\r\nbool
GetParticleIndex(inout uint particleIndex, uint stripIndex)\r\n{\r\n\tuint
relativeIndex;\r\n\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
1, relativeIndex);\r\n\tif (relativeIndex >= PARTICLE_PER_STRIP_COUNT) // strip
is full\r\n\t{\r\n\t\tInterlockedAdd(STRIP_DATA(STRIP_NEXT_INDEX, stripIndex),
-1); // Remove previous increment\r\n\t\treturn false;\r\n\t}\r\n\r\n\tparticleIndex
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid
CSMain(uint3 groupId : SV_GroupID,\r\n uint3 groupThreadId
: SV_GroupThreadID)\r\n{\r\n uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if
!VFX_USE_SPAWNER_FROM_GPU\r\n id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
+ relativeIndex) % PARTICLE_PER_STRIP_COUNT);\r\n return true;\r\n}\r\n#endif\r\n#pragma
warning(pop)\r\n\r\n[numthreads(NB_THREADS_PER_GROUP,1,1)]\r\nvoid CSMain(uint3
groupId : SV_GroupID,\r\n uint3 groupThreadId : SV_GroupThreadID)\r\n{\r\n
uint id = groupThreadId.x + groupId.x * NB_THREADS_PER_GROUP;\r\n#if !VFX_USE_SPAWNER_FROM_GPU\r\n
id += groupId.y * dispatchWidth * NB_THREADS_PER_GROUP;\r\n#endif\r\n\r\n#if
VFX_USE_SPAWNER_FROM_GPU\r\n uint maxThreadId = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 0) << 2);\r\n uint currentSpawnIndex = inputAdditional.Load((offsetInAdditionalOutput
* 2 + 1) << 2) - maxThreadId;\r\n#else\r\n uint maxThreadId = nbSpawned;\r\n

name: '[System 4]Output ParticleStrip Quad'
source: "Shader \"Hidden/VFX/Lightning/System 4/Output ParticleStrip Quad\"\n{\r\n\tSubShader\r\n\t{\t\r\n\t\tCull
Off\r\n\t\t\r\n\t\tTags { \"Queue\"=\"Transparent+0\" \"IgnoreProjector\"=\"True\"
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
\"RenderType\"=\"Transparent\" }\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\tBlend
SrcAlpha OneMinusSrcAlpha \n\t\tZTest LEqual\n\t\tZWrite Off\n\t\tCull Off\n\t\t\n\t\n\t\t\t\n\t\tHLSLINCLUDE\n\t\t\n\t\t#define
NB_THREADS_PER_GROUP 64\n\t\t#define HAS_ATTRIBUTES 1\n\t\t#define VFX_PASSDEPTH_ACTUAL
(0)\n\t\t#define VFX_PASSDEPTH_MOTION_VECTOR (1)\n\t\t#define VFX_PASSDEPTH_SELECTION

PARTICLE_PER_STRIP_COUNT 200u\n\t\t#define VFX_COLORMAPPING_DEFAULT 1\n\t\t#define
IS_TRANSPARENT_PARTICLE 1\n\t\t#define VFX_BLENDMODE_ALPHA 1\n\t\t#define VFX_BYPASS_EXPOSURE
1\n\t\t#define HAS_STRIPS 1\n\t\t#define VFX_STRIPS_UV_STRECHED 1\n\t\t#define
VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_PRIMITIVE_QUAD 1\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t#define
VFX_WORLD_SPACE 1\n\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXDefines.hlsl\"\n\t\t\n\n\t\tCBUFFER_START(parameters)\n\t\t
float4 Alpha_e;\n\t\tCBUFFER_END\n\t\t\n\t\tstruct Attributes\n\t\t{\n\t\t
float3 position;\n\t\t float alpha;\n\t\t float lifetime;\n\t\t float3

float scaleX;\n\t\t float scaleY;\n\t\t float scaleZ;\n\t\t float
age;\n\t\t};\n\t\t\n\t\tstruct SourceAttributes\n\t\t{\n\t\t};\n\t\t\n\t\tTexture2D
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\n\t\t\n\t\t#define
mainTexture;\n\t\tSamplerState samplermainTexture;\n\t\tfloat4 mainTexture_TexelSize;\n\t\t\n\t\t\n\n\t\t\n\t\t#define
VFX_NEEDS_COLOR_INTERPOLATOR (VFX_USE_COLOR_CURRENT || VFX_USE_ALPHA_CURRENT)\n\t\t#if
HAS_STRIPS\n\t\t#define VFX_OPTIONAL_INTERPOLATION \n\t\t#else\n\t\t#define
VFX_OPTIONAL_INTERPOLATION nointerpolation\n\t\t#endif\n\t\t\n\t\tByteAddressBuffer

posWS\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
VFX_VARYING_VELOCITY_CPOS cPosNonJiterred\n\t\t\t#define VFX_VARYING_VELOCITY_CPOS_PREVIOUS
cPosPrevious\n\t\t\t#endif\n\t\t\t\n\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t#define
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#else\n\t\t\t#define SHADERPASS
SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
SHADERPASS SHADERPASS_MOTION_VECTORS\n\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t#define
SHADERPASS SHADERPASS_DEPTH_ONLY\n\t\t\t#endif\n\t\t\t\n\t\t\t#if !(defined(VFX_VARYING_PS_INPUTS)
&& defined(VFX_VARYING_POSCS))\n\t\t\t#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS
and VFX_VARYING_UV must be defined.\n\t\t\t#endif\n\t\t\t\n\t\t\t#include \"Packages/com.unity.render-pipelines.high-definition/Runtime/VFXGraph/Shaders/VFXCommon.hlsl\"\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommon.hlsl\"\n\t\t\t\n\n\t\t\tvoid

= uvData.blend;\n\t\t\t\t\t\t#if USE_FLIPBOOK_MOTIONVECTORS && defined(VFX_VARYING_MOTIONVECTORSCALE)\n\t\t\t\t\t\t\n\t\t\t\t\t\to.VFX_VARYING_MOTIONVECTORSCALE
= motionVectorScale * invFlipBookSize;\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t \n\t\t\t\n\t\t\t\treturn o;\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#include
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\tint _ObjectId;\n\t\t\tint _PassValue;\n\t\t\t#endif\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#pragma
fragment frag\n\t\t\tfloat4 frag(ps_input i) : SV_TARGET\n\t\t\t{\n\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t \n\t\t\t \n\t\t\t \n\t\t\t
\n\t\t\t float alpha = OUTSG.;\n\t\t\t #else\n\t\t\t float
alpha = VFXGetFragmentColor(i).a;\n\t\t\t alpha *= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t
#endif\n\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\n\t\t\t\t#if VFX_PASSDEPTH
== VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\n\t\t\t\t\t\t\tfloat2 velocity =
(i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) - (i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity *
0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\n\t\t\t\t\treturn encodedMotionVector;\n\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\treturn float4(_ObjectId,
_PassValue, 1.0, 1.0);\n\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\treturn
(float4)0;\n\t\t\t\t#else\n\t\t\t\t\t#error VFX_PASSDEPTH undefined \n\t\t\t\t#endif\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
\"Packages/com.unity.visualeffectgraph/Shaders/VFXCommonOutput.hlsl\"\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t#define
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1\n\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t#ifndef
VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t#define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH
0\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\tint _ObjectId;\n\t\t\t\t\tint
_PassValue;\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t#pragma fragment frag\n\t\t\t\t\tvoid
frag(ps_input i\n\t\t\t\t\t#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t
#ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t // We need the depth color as SV_Target0
for alpha to coverage\n\t\t\t\t\t , out float4 outDepthColor : SV_Target0\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target1\n\t\t\t\t\t #else\n\t\t\t\t\t
// When no MSAA, the motion vector is always the first buffer\n\t\t\t\t\t
, out float4 outMotionVector : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif
VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t #ifdef WRITE_MSAA_DEPTH\n\t\t\t\t\t
, out float4 outDepthColor : SV_Target0\n\t\t\t\t\t #else\n\t\t\t\t\t
, out float4 dummy : SV_Target0\n\t\t\t\t\t #endif\n\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t , out float4 outSelection : SV_Target0\n\t\t\t\t\t#endif\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tUNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);\n\t\t\t\t\t\tVFXTransformPSInputs(i);\n\t\t\t\t\t
#ifdef VFX_SHADERGRAPH\n\t\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t\t
float alpha = OUTSG.;\n\t\t\t\t\t #else\n\t\t\t\t\t float alpha =
VFXGetFragmentColor(i).a;\n\t\t\t\t\t\t\t#if VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH\n\t\t\t\t\t\t\t\talpha
*= VFXGetTextureColor(VFX_SAMPLER(mainTexture),i).a;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t
#endif\n\t\t\t\t\t\tVFXClipFragmentColor(alpha,i);\n\t\t\t\t\t\n\t\t\t\t\t\t#ifdef
WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\toutDepthColor = i.VFX_VARYING_POSCS.z;\n\t\t\t\t\t\t\t#if
VFX_USE_ALPHA_TO_MASK\n\t\t\t\t\t\t\t\toutDepthColor.a = alpha;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\t\t#if
VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tfloat2
velocity = (i.VFX_VARYING_VELOCITY_CPOS.xy/i.VFX_VARYING_VELOCITY_CPOS.w) -
(i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.xy/i.VFX_VARYING_VELOCITY_CPOS_PREVIOUS.w);\n\t\t\t\t\t\t\t\t\t#if
UNITY_UV_STARTS_AT_TOP\n\t\t\t\t\t\t\t\t\t\tvelocity.y = -velocity.y;\n\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\tfloat4
encodedMotionVector = 0.0f;\n\t\t\t\t\t\t\t\t\tVFXEncodeMotionVector(velocity
* 0.5f, encodedMotionVector);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toutMotionVector
= encodedMotionVector;\n\t\t\t\t\t\t#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION\n\t\t\t\t\t\t\toutSelection
= float4(_ObjectId, _PassValue, 1.0, 1.0);\n\t\t\t\t\t\t#elif VFX_PASSDEPTH
== VFX_PASSDEPTH_ACTUAL\n\t\t\t\t\t\t\t#ifndef WRITE_MSAA_DEPTH\n\t\t\t\t\t\t\t\tdummy
= (float4)0;\n\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t#else\n\t\t\t\t\t\t\t#error
VFX_PASSDEPTH undefined \n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\n\t\t\n\t\t\tENDHLSL\n\t\t}\n\t\t\n\r\n\t\t\r\n\t\t\r\n\t\t//
Forward pass\n\t\tPass\n\t\t{\t\t\n\t\t\tTags { \"LightMode\"=\"ForwardOnly\"
}\n\t\t\t\n\t\t\tHLSLPROGRAM\n\t\t\t#pragma target 4.5\n\t\t\t#pragma multi_compile
_ DEBUG_DISPLAY\n\t\t\n\t\t\tstruct ps_input\n\t\t\t{\n\t\t\t\tfloat4 pos :

index: 10
- nameId: deltaTime_b
index: 30
- nameId: texture_b
- nameId: texture_a
index: 12
params: []
processor: {fileID: 0}

values:
- nameId: Size_b
index: 62
- nameId: uniform_c
- nameId: uniform_a
- nameId: uniform_d
- nameId: uniform_b
index: 31
- nameId: Alpha_g
index: 59

index: 36
- nameId: deltaTime_d
index: 30
- nameId: texture_b
- nameId: texture_a
index: 12
params: []
processor: {fileID: 0}

index: 7
temporaryBuffers: []
values:
- nameId: uniform_b
- nameId: uniform_a
index: 32
- nameId: Alpha_b
index: 44

8
Assets/Samples/Visual Effect Graph/7.4.1.meta


fileFormatVersion: 2
guid: fc6a440c6215db44abad91fded2c5e3e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions.meta


fileFormatVersion: 2
guid: 12502bb12ed9320419ea2e3efad313a0
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Assets/Samples/Visual Effect Graph/7.1.6.meta


fileFormatVersion: 2
guid: ba4cb5d9ed892ff4cabbe47cbebb54a2
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

/Assets/Samples/Visual Effect Graph/7.1.6/VisualEffectGraph Additions → /Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions

/Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/Flame02-temperature_16x4_ldr.png → /Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/Flame02-temperature_16x5_ldr.png

/Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/Flame02-temperature_16x4_ldr.png.meta → /Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/Flame02-temperature_16x5_ldr.png.meta

/Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/Flame03-hollow-temperature_16x4.png → /Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/Flame03-hollow-temperature_16x5.png

/Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/Flame03-hollow-temperature_16x4.png.meta → /Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/Flame03-hollow-temperature_16x5.png.meta

/Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/SmallFlame01-mini_16x4.png → /Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/SmallFlame01-mini_15x4.png

/Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/SmallFlame01-mini_16x4.png.meta → /Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/SmallFlame01-mini_15x4.png.meta

/Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/SmallFlame01-smaller-temperature_16x4.png → /Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/SmallFlame01-smaller-temperature_15x4.png

/Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/SmallFlame01-smaller-temperature_16x4.png.meta → /Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/SmallFlame01-smaller-temperature_15x4.png.meta

/Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/SmallFlame01_16x4.png → /Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/SmallFlame01_15x4.png

/Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/SmallFlame01_16x4.png.meta → /Assets/Samples/Visual Effect Graph/7.4.1/VisualEffectGraph Additions/Textures/Fire/SmallFlame01_15x4.png.meta

正在加载...
取消
保存