UnityGame/Library/PackageCache/com.unity.render-pipelines.universal/Editor/VFXGraph/Shaders/VFXDecalVaryings.template

203 lines
4.8 KiB
Plaintext
Raw Normal View History

2024-10-27 10:53:47 +03:00
#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}