#pragma target 4.5 #if defined(WRITE_NORMAL_BUFFER) || FORCE_NORMAL_VARYING #define NEEDS_NORMAL 1 #elif (SHADERPASS == SHADERPASS_DEPTHONLY) #define NEEDS_NORMAL SHADERGRAPH_NEEDS_NORMAL_DEPTHONLY #elif (SHADERPASS == SHADERPASS_DEPTHNORMALSONLY) #define NEEDS_NORMAL SHADERGRAPH_NEEDS_NORMAL_DEPTHNORMALS #else #define NEEDS_NORMAL 0 #endif #if defined(WRITE_NORMAL_BUFFER) #define NEEDS_TANGENT 1 #elif (SHADERPASS == SHADERPASS_DEPTHONLY) #define NEEDS_TANGENT SHADERGRAPH_NEEDS_TANGENT_DEPTHONLY #elif (SHADERPASS == SHADERPASS_DEPTHNORMALSONLY) #define NEEDS_TANGENT SHADERGRAPH_NEEDS_TANGENT_DEPTHNORMALS #else #define NEEDS_TANGENT 0 #endif #define NEEDS_WORLDPOS VFX_NEEDS_POSWS_INTERPOLATOR struct ps_input { float4 pos : SV_POSITION; #if USE_FLIPBOOK_INTERPOLATION float4 uv : TEXCOORD0; #else #if USE_FLIPBOOK_ARRAY_LAYOUT float3 uv : TEXCOORD0; #else float2 uv : TEXCOORD0; #endif #endif #if USE_ALPHA_TEST || USE_FLIPBOOK_INTERPOLATION || VFX_USE_ALPHA_CURRENT // x: alpha threshold // y: frame blending factor // z: alpha // w: smoothness VFX_OPTIONAL_INTERPOLATION float4 builtInInterpolants : TEXCOORD1; #endif #if USE_FLIPBOOK_MOTIONVECTORS // x: motion vector scale u // y: motion vector scale v VFX_OPTIONAL_INTERPOLATION float2 builtInInterpolants2 : TEXCOORD2; #endif #if NEEDS_NORMAL float4 normal : TEXCOORD3; // normal scale is stored in w #endif #if NEEDS_TANGENT float3 tangent : TEXCOORD4; #endif #if USE_NORMAL_BENDING float2 bentFactors : TEXCOORD5; #endif #if NEEDS_WORLDPOS float3 posWS : TEXCOORD6; #endif ${VFXAdditionalInterpolantsDeclaration} UNITY_VERTEX_OUTPUT_STEREO }; #define VFX_VARYING_PS_INPUTS ps_input #define VFX_VARYING_POSCS pos #define VFX_VARYING_ALPHA builtInInterpolants.z #define VFX_VARYING_ALPHATHRESHOLD builtInInterpolants.x #define VFX_VARYING_FRAMEBLEND builtInInterpolants.y #define VFX_VARYING_MOTIONVECTORSCALE builtInInterpolants2.xy #define VFX_VARYING_UV uv #if NEEDS_NORMAL #define VFX_VARYING_NORMAL normal.xyz #endif #if NEEDS_TANGENT #define VFX_VARYING_TANGENT tangent #endif #if NEEDS_WORLDPOS #define VFX_VARYING_POSWS posWS #endif #if USE_NORMAL_MAP && NEEDS_NORMAL #define VFX_VARYING_NORMALSCALE normal.w #endif #if USE_NORMAL_BENDING #define VFX_VARYING_BENTFACTORS bentFactors #endif ${VFXBegin:VFXVertexAdditionalProcess} ${VFXURPLitFillVaryings} ${VFXEnd} ${VFXInclude("Shaders/ParticlePlanarPrimitives/Pass.template")} ${VFXPassDepthCommonFragmentURPLit}