#pragma target 4.5 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 VFX_OPTIONAL_INTERPOLATION float3 builtInInterpolants : TEXCOORD1; #endif #if USE_FLIPBOOK_MOTIONVECTORS // x: motion vectors scale X // y: motion vectors scale Y VFX_OPTIONAL_INTERPOLATION float2 builtInInterpolants2 : TEXCOORD2; #endif #if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR VFX_FEATURE_MOTION_VECTORS_INTERPOLATION float4 cPosPrevious : TEXCOORD3; VFX_FEATURE_MOTION_VECTORS_INTERPOLATION float4 cPosNonJiterred : TEXCOORD4; #endif #if VFX_NEEDS_POSWS_INTERPOLATOR float3 posWS : TEXCOORD5; #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 VFX_NEEDS_POSWS_INTERPOLATOR #define VFX_VARYING_POSWS posWS #endif #if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR #define VFX_VARYING_VELOCITY_CPOS cPosNonJiterred #define VFX_VARYING_VELOCITY_CPOS_PREVIOUS cPosPrevious #endif #if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR ${VFXPassVelocityDefine} #elif VFX_PASSDEPTH == VFX_PASSDEPTH_SHADOW ${VFXPassShadowDefine} #elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL || VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION ${VFXPassDepthDefine} #endif ${VFXBegin:VFXVertexAdditionalProcess} #if VFX_PASSDEPTH == VFX_PASSDEPTH_SHADOW float3 posWS = TransformPositionVFXToWorld(vPos); VFXApplyShadowBias(o.VFX_VARYING_POSCS, posWS, normalWS); #endif ${VFXEnd} ${VFXInclude("Shaders/ParticlePlanarPrimitives/Pass.template")} #define VFX_SUPPORT_MAIN_TEXTURE_SAMPLING_IN_FRAGMENT_DEPTH 1 ${VFXPassDepthCommonFragmentUnlit}