123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202 |
-
- #define URP_NEEDS_UVS (URP_USE_BASE_COLOR_MAP || URP_USE_MASK_MAP || USE_NORMAL_MAP || URP_USE_EMISSIVE_MAP)
- #define URP_USE_EMISSIVE (URP_USE_EMISSIVE_MAP || URP_USE_EMISSIVE_COLOR || URP_USE_ADDITIONAL_EMISSIVE_COLOR)
-
- ${VFXBegin:VFXURPDecalVaryingsMacros}
- #if (VFX_NEEDS_COLOR_INTERPOLATOR && URP_USE_BASE_COLOR) || URP_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 URP_USE_EMISSIVE_MAP
- #define VFX_VARYING_EMISSIVESCALE materialProperties.w
- #endif
-
- #if URP_USE_EMISSIVE_COLOR || URP_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
- #if DECAL_ANGLE_FADE
- #define VFX_VARYING_ANGLEFADE fadeParameters.yz
- #endif
- #if USE_ALPHA_TEST
- #define VFX_VARYING_ALPHATHRESHOLD fadeParameters.w
- #endif
-
- ${VFXEnd}
-
- ${VFXBegin:VFXURPDecalDeclareVaryings}
-
- #if (VFX_NEEDS_COLOR_INTERPOLATOR && URP_USE_BASE_COLOR) || URP_USE_ADDITIONAL_BASE_COLOR
- VFX_OPTIONAL_INTERPOLATION float4 color : COLOR0;
- #endif
- #if URP_USE_EMISSIVE
- VFX_OPTIONAL_INTERPOLATION float4 emissiveColor : COLOR2;
- #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 worldToDecal[3] : TEXCOORD5;
-
- #if USE_NORMAL_MAP
- VFX_OPTIONAL_INTERPOLATION float normalAlpha : TEXCOORD8;
- #endif
-
- VFX_VERTEX_OUTPUT_INSTANCE_INDEX
- ${VFXEnd}
-
- ${VFXBegin:VFXURPDecalFillVaryings}
- #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 URP_USE_EMISSIVE_MAP
- #ifdef VFX_VARYING_EMISSIVESCALE
- ${VFXLoadParameter:{emissiveScale}}
- o.VFX_VARYING_EMISSIVESCALE = emissiveScale;
- #endif
- #endif
-
- #ifdef VFX_VARYING_EMISSIVE
- #if URP_USE_EMISSIVE_COLOR
- o.VFX_VARYING_EMISSIVE = attributes.color;
- #elif URP_USE_ADDITIONAL_EMISSIVE_COLOR
- ${VFXLoadParameter:{emissiveColor}}
- o.VFX_VARYING_EMISSIVE = emissiveColor.rgb;
- #endif
- #endif
-
- #if URP_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());
- #endif
-
- for (int k = 0; k < 3; k++)
- {
- o.worldToDecal[k] = worldToDecal[k];
- }
-
- #ifdef VFX_VARYING_NORMALALPHA
- ${VFXLoadParameter:{normalAlpha}}
- o.VFX_VARYING_NORMALALPHA = normalAlpha;
- #endif
- ${VFXEnd}
|