#define HDRP_NEEDS_UVS (HDRP_USE_BASE_COLOR_MAP || HDRP_USE_MASK_MAP || USE_NORMAL_MAP || HDRP_USE_EMISSIVE_MAP) #define HDRP_USE_EMISSIVE (HDRP_USE_EMISSIVE_MAP || HDRP_USE_EMISSIVE_COLOR || HDRP_USE_ADDITIONAL_EMISSIVE_COLOR) ${VFXBegin:VFXHDRPDecalVaryingsMacros} #if (VFX_NEEDS_COLOR_INTERPOLATOR && HDRP_USE_BASE_COLOR) || HDRP_USE_ADDITIONAL_BASE_COLOR #define VFX_VARYING_COLOR color.rgb #define VFX_VARYING_ALPHA color.a #endif #if AFFECT_METALLIC #define VFX_VARYING_METALLIC materialProperties.x #endif #if AFFECT_AMBIENT_OCCLUSION #define VFX_VARYING_AMBIENT_OCCLUSION materialProperties.y #endif #if AFFECT_SMOOTHNESS #define VFX_VARYING_SMOOTHNESS materialProperties.z #endif #if HDRP_USE_EMISSIVE_MAP #define VFX_VARYING_EMISSIVESCALE materialProperties.w #endif #if HDRP_USE_EMISSIVE_COLOR || HDRP_USE_ADDITIONAL_EMISSIVE_COLOR #define VFX_VARYING_EMISSIVE emissiveColor.rgb #endif #if USE_EXPOSURE_WEIGHT #define VFX_VARYING_EXPOSUREWEIGHT emissiveColor.a #endif #if USE_FLIPBOOK #if USE_FLIPBOOK_ARRAY_LAYOUT #define VFX_VARYING_FLIPBOOKSIZE flipBookSize #else #define VFX_VARYING_FLIPBOOKSIZE flipBookSize.xy #define VFX_VARYING_INVFLIPBOOKSIZE flipBookSize.zw #endif #if USE_FLIPBOOK_MOTIONVECTORS #define VFX_VARYING_MOTIONVECTORSCALE builtInInterpolants.xy #define VFX_VARYING_TEXINDEX builtInInterpolants.z #define VFX_VARYING_TEXINDEXBLEND builtInInterpolants.w #else #define VFX_VARYING_TEXINDEX texIndices.x #if USE_FLIPBOOK_INTERPOLATION #define VFX_VARYING_TEXINDEXBLEND texIndices.y #endif #endif #endif #if USE_UV_SCALE_BIAS #define VFX_VARYING_UV_SCALE scaleBias.xy #define VFX_VARYING_UV_BIAS scaleBias.zw #endif #if USE_NORMAL_MAP #define VFX_VARYING_NORMALALPHA normalAlpha #endif #define VFX_VARYING_PS_INPUTS ps_input #define VFX_VARYING_POSCS pos #define VFX_VARYING_POSWS posWS #define VFX_VARYING_FADEFACTOR fadeParameters.x #define VFX_VARYING_ANGLEFADE fadeParameters.yz #if USE_ALPHA_TEST #define VFX_VARYING_ALPHATHRESHOLD fadeParameters.w #endif ${VFXEnd} ${VFXBegin:VFXHDRPDecalDeclareVaryings} #if (VFX_NEEDS_COLOR_INTERPOLATOR && HDRP_USE_BASE_COLOR) || HDRP_USE_ADDITIONAL_BASE_COLOR VFX_OPTIONAL_INTERPOLATION float4 color : COLOR0; #endif #if HDRP_USE_EMISSIVE VFX_OPTIONAL_INTERPOLATION float4 emissiveColor : COLOR1; #endif // x: metallic // y: AO // z: smoothness // w: emissive scale VFX_OPTIONAL_INTERPOLATION float4 materialProperties : TEXCOORD0; #if USE_FLIPBOOK #if USE_FLIPBOOK_ARRAY_LAYOUT nointerpolation float flipBookSize : TEXCOORD1; #else nointerpolation float4 flipBookSize : TEXCOORD1; #endif #if USE_FLIPBOOK_MOTIONVECTORS // x: motion vectors scale X // y: motion vectors scale Y // z: texIndex // w: texIndexBlend nointerpolation float4 builtInInterpolants : TEXCOORD2; #else // x: texIndex // y: texIndexBlend nointerpolation float2 texIndices : TEXCOORD2; #endif #endif #if USE_UV_SCALE_BIAS nointerpolation float4 scaleBias : TEXCOORD1; #endif float3 posWS : TEXCOORD3; #if USE_ALPHA_TEST // x: fade factor // y: angle fade start // z: angle fade end // w: alpha threshold nointerpolation float4 fadeParameters : TEXCOORD4; #else // x: fade factor // y: angle fade start // z: angle fade end nointerpolation float3 fadeParameters : TEXCOORD4; #endif nointerpolation float4 worldToDecal0 : TEXCOORD5; nointerpolation float4 worldToDecal1 : TEXCOORD6; nointerpolation float4 worldToDecal2 : TEXCOORD7; #if USE_NORMAL_MAP VFX_OPTIONAL_INTERPOLATION float normalAlpha : TEXCOORD8; #endif VFX_VERTEX_OUTPUT_INSTANCE_INDEX ${VFXEnd} ${VFXBegin:VFXHDRPDecalFillVaryings} #ifndef VFX_SHADERGRAPH #ifdef VFX_VARYING_SMOOTHNESS ${VFXLoadParameter:{smoothness}} o.VFX_VARYING_SMOOTHNESS = smoothness; #endif #ifdef VFX_VARYING_METALLIC ${VFXLoadParameter:{metallic}} o.VFX_VARYING_METALLIC = metallic; #endif #ifdef VFX_VARYING_AMBIENT_OCCLUSION ${VFXLoadParameter:{ambientOcclusion}} o.VFX_VARYING_AMBIENT_OCCLUSION = ambientOcclusion; #endif #if HDRP_USE_EMISSIVE_MAP #ifdef VFX_VARYING_EMISSIVESCALE ${VFXLoadParameter:{emissiveScale}} o.VFX_VARYING_EMISSIVESCALE = emissiveScale; #endif #endif #ifdef VFX_VARYING_EMISSIVE #if HDRP_USE_EMISSIVE_COLOR o.VFX_VARYING_EMISSIVE = attributes.color; #elif HDRP_USE_ADDITIONAL_EMISSIVE_COLOR ${VFXLoadParameter:{emissiveColor}} o.VFX_VARYING_EMISSIVE = emissiveColor.rgb; #endif #endif #if HDRP_USE_ADDITIONAL_BASE_COLOR #ifdef VFX_VARYING_COLOR ${VFXLoadParameter:{baseColor}} o.VFX_VARYING_COLOR = baseColor; #endif #endif #endif float4x4 worldToDecal = GetVFXToElementMatrix( attributes.axisX, attributes.axisY, attributes.axisZ, float3(attributes.angleX,attributes.angleY,attributes.angleZ), float3(attributes.pivotX,attributes.pivotY,attributes.pivotZ), size3, attributes.position); #if VFX_LOCAL_SPACE worldToDecal = mul(worldToDecal, VFXGetWorldToObjectMatrix()); #else worldToDecal = ApplyCameraTranslationToInverseMatrix(worldToDecal); #endif o.worldToDecal0 = worldToDecal[0]; o.worldToDecal1 = worldToDecal[1]; o.worldToDecal2 = worldToDecal[2]; #ifdef VFX_VARYING_NORMALALPHA ${VFXLoadParameter:{normalAlpha}} o.VFX_VARYING_NORMALALPHA = normalAlpha; #endif ${VFXEnd}