initial commit

This commit is contained in:
Jo 2025-01-07 02:06:59 +01:00
parent 6715289efe
commit 788c3389af
37645 changed files with 2526849 additions and 80 deletions

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ce87f332afb5ca24ca5486d4bf5caa15
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a2a46415c7cedaf418d42532b73efd24
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,10 @@
// 2D Pass
Pass
{
Tags { "LightMode"=${VFXPassForward2D} }
HLSLPROGRAM
#pragma target 4.5
${VFXInclude("Shaders/ParticleHexahedron/PassBasicForwardCommon.template")}
ENDHLSL
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 2d6519c74f7a7584685798d2431960f2
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 18a4907a4ab1eb24882f891e45c993db
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,10 @@
// 2D Pass
Pass
{
Tags { "LightMode"=${VFXPassForward2D} }
HLSLPROGRAM
#pragma target 4.5
${VFXInclude("Shaders/ParticleLines/PassForwardCommon.template")}
ENDHLSL
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: f3ec7f3c24cdbba49986aa6478b5867f
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 792601c2ba0e2bc41986706670f378d4
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,10 @@
// 2D pass
Pass
{
Tags { "LightMode"=${VFXPassForward2D} }
HLSLPROGRAM
#pragma target 4.5
${VFXInclude("Shaders/ParticleLinesSW/PassForwardCommon.template")}
ENDHLSL
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 526188e7c1965614aa36043f95c18390
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e3f2e22f0a32625498c3494d01930342
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,10 @@
// Forward pass
Pass
{
Tags { "LightMode"=${VFXPassForward2D} }
HLSLPROGRAM
#pragma target 4.5
${VFXInclude("Shaders/ParticleMeshes/PassForwardCommon.template")}
ENDHLSL
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ec0dd9ca912a8824590a57224cabd290
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 76287eaf161827c40994b1ba2f2af31f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,135 @@
#if !(defined(VFX_VARYING_PS_INPUTS) && defined(VFX_VARYING_POSCS))
#error VFX_VARYING_PS_INPUTS, VFX_VARYING_POSCS and VFX_VARYING_UV must be defined.
#endif
${VFXPerPassInclude}
${VFXGeneratedBlockFunction}
struct vs_input
{
float3 pos : POSITION;
float2 uv : TEXCOORD0;
#if VFX_SHADERGRAPH_HAS_UV1
float4 uv1 : TEXCOORD1;
#endif
#if VFX_SHADERGRAPH_HAS_UV2
float4 uv2 : TEXCOORD2;
#endif
#if VFX_SHADERGRAPH_HAS_UV3
float4 uv3 : TEXCOORD3;
#endif
#if VFX_SHADERGRAPH_HAS_COLOR
float4 vertexColor : COLOR;
#endif
float3 normal : NORMAL;
#if defined(VFX_VARYING_TANGENT) || SHADERGRAPH_HAS_NORMAL
float4 tangent : TANGENT;
#endif
VFX_DECLARE_INSTANCE_ID
};
#pragma vertex vert
VFX_VARYING_PS_INPUTS vert(vs_input i)
{
VFX_VARYING_PS_INPUTS o = (VFX_VARYING_PS_INPUTS)0;
UNITY_SETUP_INSTANCE_ID(i);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
uint index = VFX_GET_INSTANCE_ID(i);
${VFXLoadAttributesOrCull}
${VFXProcessBlocks}
if (!attributes.alive)
return o;
o.VFX_VARYING_UV.xy = i.uv;
#if VFX_SHADERGRAPH_HAS_UV1
o.uv1 = i.uv1;
#endif
#if VFX_SHADERGRAPH_HAS_UV2
o.uv2 = i.uv2;
#endif
#if VFX_SHADERGRAPH_HAS_UV3
o.uv3 = i.uv3;
#endif
#if VFX_SHADERGRAPH_HAS_COLOR
o.vertexColor = i.vertexColor;
#endif
${VFXLoadSize}
float3 inputVertexPosition = i.pos;
float4x4 elementToVFX = GetElementToVFXMatrix(
attributes.axisX,
attributes.axisY,
attributes.axisZ,
float3(attributes.angleX,attributes.angleY,attributes.angleZ),
float3(attributes.pivotX,attributes.pivotY,attributes.pivotZ),
size3,
attributes.position);
float3 vPos = mul(elementToVFX,float4(inputVertexPosition,1.0f)).xyz;
float4 csPos = TransformPositionVFXToClip(vPos);
o.VFX_VARYING_POSCS = csPos;
// TODO This is needed only if in local space (to handle non uniform scale) or if scale attributes are stored/written (no way to know atm)
float3x3 elementToVFX_N = GetElementToVFXMatrixNormal(
attributes.axisX,
attributes.axisY,
attributes.axisZ,
float3(attributes.angleX,attributes.angleY,attributes.angleZ),
size3);
float3 normalWS = normalize(TransformNormalVFXToWorld(mul(elementToVFX_N, i.normal)));
#ifdef VFX_VARYING_NORMAL
o.VFX_VARYING_NORMAL = normalWS;
#endif
#ifdef VFX_VARYING_TANGENT
o.VFX_VARYING_TANGENT = float4(normalize(TransformDirectionVFXToWorld(mul((float3x3)elementToVFX,i.tangent.xyz))),i.tangent.w);
#endif
${VFXVertexComputeCurrentAndPreviousClipPos}
${VFXVertexCommonProcess}
${VFXVertexSetFlipbooksInterpolants}
${VFXVertexAdditionalProcess}
${VFXAdditionalInterpolantsGeneration}
return o;
}
${VFXBegin:VFXComputeNormalWS}
#ifdef VFX_VARYING_NORMAL
#if USE_DOUBLE_SIDED
const float faceMul = frontFace ? 1.0f : -1.0f;
#else
const float faceMul = 1.0f;
#endif
float3 normalWS = normalize(i.VFX_VARYING_NORMAL * faceMul);
const VFXUVData uvData = GetUVData(i);
#ifdef VFX_VARYING_TANGENT
float3 tangentWS = normalize(i.VFX_VARYING_TANGENT.xyz);
float3 bitangentWS = cross(normalWS,tangentWS) * (i.VFX_VARYING_TANGENT.w * faceMul);
float3x3 tbn = float3x3(tangentWS,bitangentWS,normalWS);
#if USE_NORMAL_MAP
float3 n = SampleNormalMap(VFX_SAMPLER(normalMap),uvData);
float normalScale = 1.0f;
#ifdef VFX_VARYING_NORMALSCALE
normalScale = i.VFX_VARYING_NORMALSCALE;
#endif
normalWS = normalize(lerp(normalWS,mul(n,tbn),normalScale));
#endif
#endif
#endif
${VFXEnd}
${VFXBegin:VFXVertexAdditionalProcess}${VFXEnd}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 77e942a6f106f7746bec78ed934de11a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,13 @@
Pass
{
Tags { "LightMode"="DepthOnly" }
ZWrite On
Blend Off
HLSLPROGRAM
#define VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL
${VFXIncludeRP("Templates/ParticleMeshesLit/PassDepthOrMV.template")}
ENDHLSL
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 23f922a362522a540b38b85bb2a5353f
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,14 @@
Pass
{
Tags { "LightMode"="DepthNormals" }
ZWrite On
Blend Off
HLSLPROGRAM
#define VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL
#define WRITE_NORMAL_BUFFER
${VFXIncludeRP("Templates/ParticleMeshesLit/PassDepthOrMV.template")}
ENDHLSL
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 75feef1dfebc40e4697124cb20d3f4fe
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,99 @@
#pragma target 4.5
#if defined(WRITE_NORMAL_BUFFER)
#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
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 VFX_SHADERGRAPH_HAS_UV1
float4 uv1 : COLOR2;
#endif
#if VFX_SHADERGRAPH_HAS_UV2
float4 uv2 : COLOR3;
#endif
#if VFX_SHADERGRAPH_HAS_UV3
float4 uv3 : COLOR4;
#endif
#if VFX_SHADERGRAPH_HAS_COLOR
float4 vertexColor : COLOR1;
#endif
#if USE_ALPHA_TEST || USE_FLIPBOOK_INTERPOLATION || VFX_USE_ALPHA_CURRENT
// x: alpha threshold
// y: frame blending factor
// z: alpha
// w: smoothness
nointerpolation float4 builtInInterpolants : TEXCOORD1;
#endif
#if USE_FLIPBOOK_MOTIONVECTORS
// x: motion vector scale u
// y: motion vector scale v
nointerpolation float2 builtInInterpolants2 : TEXCOORD3;
#endif
#if NEEDS_NORMAL
float3 normal : TEXCOORD4;
#if NEEDS_TANGENT
float4 tangent : TEXCOORD5;
#endif
#endif
#if VFX_NEEDS_POSWS_INTERPOLATOR
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
#endif
#if NEEDS_TANGENT
#define VFX_VARYING_TANGENT tangent
#endif
#if VFX_NEEDS_POSWS_INTERPOLATOR
#define VFX_VARYING_POSWS posWS
#endif
${VFXBegin:VFXVertexAdditionalProcess}
${VFXURPLitFillVaryings}
${VFXEnd}
${VFXInclude("Shaders/ParticleMeshes/Pass.template")}
${VFXPassDepthCommonFragmentURPLit}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: a55128324929eba40884977cd5c1669e
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,115 @@
// Forward pass
Pass
{
Tags { "LightMode"="UniversalForward" }
${VFXStencilForward}
HLSLPROGRAM
#pragma target 4.5
${VFXPassForwardLitAdditionalPragma}
${VFXURPForwardDefines}
//#pragma enable_d3d11_debug_symbols
${VFXIncludeRP("VFXLitVaryings.template")}
struct ps_input
{
float4 pos : SV_POSITION;
${VFXURPLitDeclareVaryings}
#if USE_FLIPBOOK_INTERPOLATION
float4 uv : TEXCOORD1;
#else
#if USE_FLIPBOOK_ARRAY_LAYOUT
float3 uv : TEXCOORD1;
#else
float2 uv : TEXCOORD1;
#endif
#endif
#if VFX_SHADERGRAPH_HAS_UV1
float4 uv1 : COLOR2;
#endif
#if VFX_SHADERGRAPH_HAS_UV2
float4 uv2 : COLOR3;
#endif
#if VFX_SHADERGRAPH_HAS_UV3
float4 uv3 : COLOR4;
#endif
#if VFX_SHADERGRAPH_HAS_COLOR
float4 vertexColor : COLOR1;
#endif
float3 normal : TEXCOORD2;
#if USE_NORMAL_MAP || SHADERGRAPH_NEEDS_TANGENT_FORWARD
float4 tangent : TEXCOORD3;
#endif
#if USE_SOFT_PARTICLE || USE_ALPHA_TEST || USE_FLIPBOOK_INTERPOLATION || VFX_FEATURE_MOTION_VECTORS_FORWARD
// x: inverse soft particles fade distance
// y: alpha threshold
// z: frame blending factor
nointerpolation float3 builtInInterpolants : TEXCOORD4;
#endif
#if USE_FLIPBOOK_MOTIONVECTORS
// x: motion vector scale u
// y: motion vector scale v
nointerpolation float2 builtInInterpolants2 : TEXCOORD5;
#endif
float3 posWS : TEXCOORD6; // Needed for fog
${VFXAdditionalInterpolantsDeclaration}
UNITY_VERTEX_OUTPUT_STEREO
};
${VFXURPLitVaryingsMacros}
#define VFX_VARYING_PS_INPUTS ps_input
#define VFX_VARYING_POSCS pos
#define VFX_VARYING_UV uv
#define VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE builtInInterpolants.x
#define VFX_VARYING_ALPHATHRESHOLD builtInInterpolants.y
#define VFX_VARYING_FRAMEBLEND builtInInterpolants.z
#define VFX_VARYING_MOTIONVECTORSCALE builtInInterpolants2.xy
#define VFX_VARYING_NORMAL normal
#if USE_NORMAL_MAP || SHADERGRAPH_NEEDS_TANGENT_FORWARD
#define VFX_VARYING_TANGENT tangent
#endif
#define VFX_VARYING_POSWS posWS
${VFXBegin:VFXVertexAdditionalProcess}
${VFXURPLitFillVaryings}
${VFXEnd}
${VFXIncludeRP("Templates/ParticleMeshesLit/Pass.template")}
#define SHADERPASS SHADERPASS_FORWARD
${VFXIncludeRP("VFXLit.template")}
${SHADERGRAPH_PIXEL_CODE_FORWARD}
#pragma fragment frag
void frag(ps_input i
, out float4 outColor : SV_Target0
#if USE_DOUBLE_SIDED
, bool frontFace : SV_IsFrontFace
#endif
)
{
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
VFXTransformPSInputs(i);
${VFXComputeNormalWS}
#ifdef VFX_SHADERGRAPH
${VFXAdditionalInterpolantsPreparation}
${SHADERGRAPH_PIXEL_CALL_FORWARD}
${VFXIncludeRP("VFXSGSurfaceData.template")}
outColor = VFXGetPixelOutputForwardShaderGraph(i, surface, normalWS);
#else
outColor = VFXGetPixelOutputForward(i, normalWS, uvData);
#endif
}
ENDHLSL
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 286d87cbf8c19c749b69078915c9be88
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,118 @@
Pass
{
Tags { "LightMode"="UniversalGBuffer" }
${VFXStencilGBuffer}
HLSLPROGRAM
#pragma target 4.5
${VFXPassGBufferAdditionalPragma}
${VFXURPGBufferDefines}
${VFXIncludeRP("VFXLitVaryings.template")}
struct ps_input
{
float4 pos : SV_POSITION;
${VFXURPLitDeclareVaryings}
#if USE_FLIPBOOK_INTERPOLATION
float4 uv : TEXCOORD1;
#else
#if USE_FLIPBOOK_ARRAY_LAYOUT
float3 uv : TEXCOORD1;
#else
float2 uv : TEXCOORD1;
#endif
#endif
#if VFX_SHADERGRAPH_HAS_UV1
float4 uv1 : COLOR2;
#endif
#if VFX_SHADERGRAPH_HAS_UV2
float4 uv2 : COLOR3;
#endif
#if VFX_SHADERGRAPH_HAS_UV3
float4 uv3 : COLOR4;
#endif
#if VFX_SHADERGRAPH_HAS_COLOR
float4 vertexColor : COLOR1;
#endif
float3 normal : TEXCOORD2;
#if USE_NORMAL_MAP || SHADERGRAPH_NEEDS_TANGENT_GBUFFER
float4 tangent : TEXCOORD3;
#endif
#if USE_SOFT_PARTICLE || USE_ALPHA_TEST || USE_FLIPBOOK_INTERPOLATION
// x: inverse soft particles fade distance
// y: alpha threshold
// z: frame blending factor
nointerpolation float3 builtInInterpolants : TEXCOORD4;
#endif
#if USE_FLIPBOOK_MOTIONVECTORS
// x: motion vector scale u
// y: motion vector scale v
nointerpolation float2 builtInInterpolants2 : TEXCOORD5;
#endif
float3 posWS : TEXCOORD6; //Needed for GI
${VFXAdditionalInterpolantsDeclaration}
UNITY_VERTEX_OUTPUT_STEREO
};
struct ps_output
{
float4 color : SV_Target0;
};
${VFXURPLitVaryingsMacros}
#define VFX_VARYING_PS_INPUTS ps_input
#define VFX_VARYING_POSCS pos
#define VFX_VARYING_UV uv
#define VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE builtInInterpolants.x
#define VFX_VARYING_ALPHATHRESHOLD builtInInterpolants.y
#define VFX_VARYING_FRAMEBLEND builtInInterpolants.z
#define VFX_VARYING_MOTIONVECTORSCALE builtInInterpolants2.xy
#define VFX_VARYING_NORMAL normal
#if USE_NORMAL_MAP || SHADERGRAPH_NEEDS_TANGENT_GBUFFER
#define VFX_VARYING_TANGENT tangent
#endif
#define VFX_VARYING_POSWS posWS
${VFXBegin:VFXVertexAdditionalProcess}
${VFXURPLitFillVaryings}
${VFXEnd}
${VFXInclude("Shaders/ParticleMeshes/Pass.template")}
#define SHADERPASS SHADERPASS_GBUFFER
${VFXIncludeRP("VFXLit.template")}
${SHADERGRAPH_PIXEL_CODE_GBUFFER}
#pragma fragment frag
void frag(ps_input i
, out FragmentOutput outGBuffer
#if USE_DOUBLE_SIDED
, bool frontFace : SV_IsFrontFace
#endif
)
{
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
VFXTransformPSInputs(i);
${VFXComputeNormalWS}
#ifdef VFX_SHADERGRAPH
${VFXAdditionalInterpolantsPreparation}
${SHADERGRAPH_PIXEL_CALL_GBUFFER}
${VFXIncludeRP("VFXSGSurfaceData.template")}
VFXComputePixelOutputToGBufferShaderGraph(i, surface, normalWS, outGBuffer);
#else
VFXComputePixelOutputToGBuffer(i, normalWS, uvData, outGBuffer);
#endif
}
ENDHLSL
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 268a144f637cfd343e3952cf770998d5
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,27 @@
Pass
{
Tags { "LightMode"="SceneSelectionPass" }
ZWrite On
Blend Off
HLSLPROGRAM
#define VFX_PASSDEPTH VFX_PASSDEPTH_SELECTION
${VFXIncludeRP("Templates/ParticleMeshesLit/PassDepthOrMV.template")}
ENDHLSL
}
Pass
{
Tags { "LightMode"="Picking" }
ZWrite On
Blend Off
HLSLPROGRAM
#define VFX_PASSDEPTH VFX_PASSDEPTH_PICKING
${VFXIncludeRP("Templates/ParticleMeshesLit/PassDepthOrMV.template")}
ENDHLSL
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 915f7a9ae9b5ab542b48b313dbf0489c
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,17 @@
// Shadow pass
Pass
{
Tags { "LightMode"=${VFXPassShadow} }
ZClip [_ZClip]
ZWrite On
Blend Off
HLSLPROGRAM
#define VFX_PASSDEPTH VFX_PASSDEPTH_SHADOW
#if !USE_ALPHA_TEST && IS_TRANSPARENT_PARTICLE
#define USE_ALPHA_TEST 1
#endif
${VFXIncludeRP("Templates/ParticleMeshesLit/PassDepthOrMV.template")}
ENDHLSL
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 9e62eb3c33b50c54badb6f7cd6eb7a8c
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 93a7f042c0fafec41b13ea8cffc632c1
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,10 @@
// Forward pass
Pass
{
Tags { "LightMode"=${VFXPassForward2D} }
HLSLPROGRAM
#pragma target 4.5
${VFXInclude("Shaders/ParticlePlanarPrimitives/PassForwardCommon.template")}
ENDHLSL
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 60e6c40c533c7ed4fbf6a90081f0e415
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2eda2aff451e93441b6b576a8db601a3
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,13 @@
Pass
{
Tags { "LightMode"="DepthOnly" }
ZWrite On
Blend Off
HLSLPROGRAM
#define VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL
${VFXIncludeRP("Templates/ParticlePlanarPrimitivesLit/PassDepthOrMV.template")}
ENDHLSL
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 37d26d1c1d738be4cba8c98b84ff0da3
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,14 @@
Pass
{
Tags { "LightMode"="DepthNormals" }
ZWrite On
Blend Off
HLSLPROGRAM
#define VFX_PASSDEPTH VFX_PASSDEPTH_ACTUAL
#define WRITE_NORMAL_BUFFER
${VFXIncludeRP("Templates/ParticlePlanarPrimitivesLit/PassDepthOrMV.template")}
ENDHLSL
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 341677e7847d0874abedb1fc1748b2cf
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,98 @@
#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}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e54411f64dc2beb43998b9727f62fa32
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,113 @@
// Forward pass
Pass
{
Tags { "LightMode"="UniversalForward"}
${VFXStencilForward}
HLSLPROGRAM
#pragma target 4.5
${VFXPassForwardLitAdditionalPragma}
${VFXURPForwardDefines}
//#pragma enable_d3d11_debug_symbols
${VFXIncludeRP("VFXLitVaryings.template")}
struct ps_input
{
float4 pos : SV_POSITION;
${VFXURPLitDeclareVaryings}
#if USE_FLIPBOOK_INTERPOLATION
float4 uv : TEXCOORD1;
#else
#if USE_FLIPBOOK_ARRAY_LAYOUT
float3 uv : TEXCOORD1;
#else
float2 uv : TEXCOORD1;
#endif
#endif
#if USE_SOFT_PARTICLE || USE_ALPHA_TEST || USE_FLIPBOOK_INTERPOLATION || VFX_FEATURE_MOTION_VECTORS_FORWARD
// x: inverse soft particles fade distance
// y: alpha threshold
// z: frame blending factor
VFX_OPTIONAL_INTERPOLATION float3 builtInInterpolants : TEXCOORD2;
#endif
#if USE_FLIPBOOK_MOTIONVECTORS
// x: motion vector scale u
// y: motion vector scale v
VFX_OPTIONAL_INTERPOLATION float2 builtInInterpolants2 : TEXCOORD3;
#endif
VFX_OPTIONAL_INTERPOLATION float3 normal : TEXCOORD4;
#if USE_NORMAL_MAP || USE_NORMAL_BENDING || SHADERGRAPH_NEEDS_TANGENT_FORWARD
VFX_OPTIONAL_INTERPOLATION float3 tangent : TEXCOORD5;
#endif
#if USE_NORMAL_BENDING
float2 bentFactors : TEXCOORD6;
#endif
float3 posWS : TEXCOOR9; // Needed for fog
${VFXAdditionalInterpolantsDeclaration}
UNITY_VERTEX_OUTPUT_STEREO
};
${VFXURPLitVaryingsMacros}
#define VFX_VARYING_PS_INPUTS ps_input
#define VFX_VARYING_POSCS pos
#define VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE builtInInterpolants.x
#define VFX_VARYING_ALPHATHRESHOLD builtInInterpolants.y
#define VFX_VARYING_FRAMEBLEND builtInInterpolants.z
#define VFX_VARYING_MOTIONVECTORSCALE builtInInterpolants2.xy
#define VFX_VARYING_UV uv
#define VFX_VARYING_NORMAL normal
#if USE_NORMAL_MAP || USE_NORMAL_BENDING || SHADERGRAPH_NEEDS_TANGENT_FORWARD
#define VFX_VARYING_TANGENT tangent
#endif
#if USE_NORMAL_BENDING
#define VFX_VARYING_BENTFACTORS bentFactors
#endif
#define VFX_VARYING_POSWS posWS
${VFXBegin:VFXVertexAdditionalProcess}
${VFXURPLitFillVaryings}
${VFXEnd}
${VFXInclude("Shaders/ParticlePlanarPrimitives/Pass.template")}
#define SHADERPASS SHADERPASS_FORWARD
${VFXIncludeRP("VFXLit.template")}
${SHADERGRAPH_PIXEL_CODE_FORWARD}
#pragma fragment frag
void frag(ps_input i
, out float4 outColor : SV_Target0
#if USE_DOUBLE_SIDED
, bool frontFace : SV_IsFrontFace
#endif
#if VFX_FEATURE_MOTION_VECTORS_FORWARD
, out float4 outMotionVector : SV_Target1
#endif
)
{
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
VFXTransformPSInputs(i);
${VFXComputeNormalWS}
#ifdef VFX_SHADERGRAPH
${VFXAdditionalInterpolantsPreparation}
${SHADERGRAPH_PIXEL_CALL_FORWARD}
${VFXIncludeRP("VFXSGSurfaceData.template")}
outColor = VFXGetPixelOutputForwardShaderGraph(i, surface, normalWS);
#else
outColor = VFXGetPixelOutputForward(i, normalWS, uvData);
#endif
}
ENDHLSL
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 5fa54a2ce1bced448b6bd9cfcac6c25d
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,105 @@
Pass
{
Tags { "LightMode"="UniversalGBuffer" }
${VFXStencilGBuffer}
HLSLPROGRAM
#pragma target 4.5
${VFXPassGBufferAdditionalPragma}
${VFXURPGBufferDefines}
${VFXIncludeRP("VFXLitVaryings.template")}
struct ps_input
{
float4 pos : SV_POSITION;
${VFXURPLitDeclareVaryings}
#if USE_FLIPBOOK_INTERPOLATION
float4 uv : TEXCOORD1;
#else
#if USE_FLIPBOOK_ARRAY_LAYOUT
float3 uv : TEXCOORD1;
#else
float2 uv : TEXCOORD1;
#endif
#endif
#if USE_SOFT_PARTICLE || USE_ALPHA_TEST || USE_FLIPBOOK_INTERPOLATION
// x: inverse soft particles fade distance
// y: alpha threshold
// z: frame blending factor
VFX_OPTIONAL_INTERPOLATION float3 builtInInterpolants : TEXCOORD2;
#endif
#if USE_FLIPBOOK_MOTIONVECTORS
// x: motion vector scale u
// y: motion vector scale v
VFX_OPTIONAL_INTERPOLATION float2 builtInInterpolants2 : TEXCOORD3;
#endif
VFX_OPTIONAL_INTERPOLATION float3 normal : TEXCOORD4;
#if USE_NORMAL_MAP || USE_NORMAL_BENDING || SHADERGRAPH_NEEDS_TANGENT_GBUFFER
VFX_OPTIONAL_INTERPOLATION float3 tangent : TEXCOORD5;
#endif
#if USE_NORMAL_BENDING
float2 bentFactors : TEXCOORD6;
#endif
float3 posWS : TEXCOORD7; //Needed for GI
${VFXAdditionalInterpolantsDeclaration}
UNITY_VERTEX_OUTPUT_STEREO
};
${VFXURPLitVaryingsMacros}
#define VFX_VARYING_PS_INPUTS ps_input
#define VFX_VARYING_POSCS pos
#define VFX_VARYING_INVSOFTPARTICLEFADEDISTANCE builtInInterpolants.x
#define VFX_VARYING_ALPHATHRESHOLD builtInInterpolants.y
#define VFX_VARYING_FRAMEBLEND builtInInterpolants.z
#define VFX_VARYING_MOTIONVECTORSCALE builtInInterpolants2.xy
#define VFX_VARYING_UV uv
#define VFX_VARYING_NORMAL normal
#if USE_NORMAL_MAP || USE_NORMAL_BENDING || SHADERGRAPH_NEEDS_TANGENT_GBUFFER
#define VFX_VARYING_TANGENT tangent
#endif
#define VFX_VARYING_POSWS posWS
#if USE_NORMAL_BENDING
#define VFX_VARYING_BENTFACTORS bentFactors
#endif
${VFXBegin:VFXVertexAdditionalProcess}
${VFXURPLitFillVaryings}
${VFXEnd}
${VFXInclude("Shaders/ParticlePlanarPrimitives/Pass.template")}
#define SHADERPASS SHADERPASS_GBUFFER
${VFXIncludeRP("VFXLit.template")}
${SHADERGRAPH_PIXEL_CODE_GBUFFER}
#pragma fragment frag
void frag(ps_input i
, out FragmentOutput outGBuffer
#if USE_DOUBLE_SIDED
, bool frontFace : SV_IsFrontFace
#endif
)
{
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
VFXTransformPSInputs(i);
${VFXComputeNormalWS}
#ifdef VFX_SHADERGRAPH
${VFXAdditionalInterpolantsPreparation}
${SHADERGRAPH_PIXEL_CALL_GBUFFER}
${VFXIncludeRP("VFXSGSurfaceData.template")}
VFXComputePixelOutputToGBufferShaderGraph(i, surface, normalWS, outGBuffer);
#else
VFXComputePixelOutputToGBuffer(i, normalWS, uvData, outGBuffer);
#endif
}
ENDHLSL
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 9efeaf56a8f5826418111f0d669150c1
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,25 @@
Pass
{
Tags { "LightMode"="SceneSelectionPass" }
ZWrite On
Blend Off
HLSLPROGRAM
#define VFX_PASSDEPTH VFX_PASSDEPTH_SELECTION
${VFXIncludeRP("Templates/ParticlePlanarPrimitivesLit/PassDepthOrMV.template")}
ENDHLSL
}
Pass
{
Tags { "LightMode"="Picking" }
ZWrite On
Blend Off
HLSLPROGRAM
#define VFX_PASSDEPTH VFX_PASSDEPTH_PICKING
${VFXIncludeRP("Templates/ParticlePlanarPrimitivesLit/PassDepthOrMV.template")}
ENDHLSL
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 01ac01709d809ff46966b98b9ec1104d
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,17 @@
Pass
{
Tags { "LightMode"=${VFXPassShadow} }
ZClip [_ZClip]
ZWrite On
Blend Off
HLSLPROGRAM
#define VFX_PASSDEPTH VFX_PASSDEPTH_SHADOW
#if !USE_ALPHA_TEST && IS_TRANSPARENT_PARTICLE
#define USE_ALPHA_TEST 1
#endif
${VFXIncludeRP("Templates/ParticlePlanarPrimitivesLit/PassDepthOrMV.template")}
ENDHLSL
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 7d07176ae506b05458500c8aa695d90e
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4880ad95c4d23714986fc0ae33cc43f1
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,10 @@
// Forward pass
Pass
{
Tags { "LightMode"=${VFXPassForward2D} }
HLSLPROGRAM
#pragma target 4.5
${VFXInclude("Shaders/ParticlePoints/PassForwardCommon.template")}
ENDHLSL
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 909b99072e12b6248b33e572f4c04095
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,13 @@
{
SubShader
{
Cull Back
${VFXInclude("Shaders/VFXParticleHeader.template")}
${VFXInclude("Shaders/ParticleHexahedron/PassSelection.template")}
${VFXInclude("Shaders/ParticleHexahedron/PassDepth.template"),IS_OPAQUE_PARTICLE}
${VFXInclude("Shaders/ParticleHexahedron/PassBasicForward.template")}
${VFXInclude("Shaders/ParticleHexahedron/PassShadowCaster.template"),USE_CAST_SHADOWS_PASS}
${VFXIncludeRP("Templates/ParticleHexahedron/PassForward2D.template")}
}
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6400081753199864e8880210a0c8ce24
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,11 @@
{
SubShader
{
Cull Back
${VFXInclude("Shaders/VFXParticleHeader.template")}
${VFXInclude("Shaders/ParticleHexahedron/PassForward.template")}
${VFXInclude("Shaders/ParticleHexahedron/PassDepth.template"),IS_OPAQUE_PARTICLE}
${VFXInclude("Shaders/ParticleHexahedron/PassShadowCaster.template"),USE_CAST_SHADOWS_PASS}
}
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 16b454c8be4c1854fab1aa702812af16
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,10 @@
{
SubShader
{
Cull Back
${VFXInclude("Shaders/VFXParticleHeader.template")}
${VFXInclude("Shaders/ParticleDecals/PassSelection.template")}
${VFXInclude("Shaders/ParticleDecals/PassForward.template")}
}
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b8fd50c1927bb714b8fe5141cb40f34a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,11 @@
{
SubShader
{
${VFXInclude("Shaders/VFXParticleHeader.template")}
${VFXInclude("Shaders/ParticleLines/PassSelection.template")}
${VFXInclude("Shaders/ParticleLines/PassDepth.template"),IS_OPAQUE_PARTICLE}
${VFXInclude("Shaders/ParticleLines/PassForward.template")}
${VFXInclude("Shaders/ParticleLines/PassShadowCaster.template"),USE_CAST_SHADOWS_PASS}
${VFXIncludeRP("Templates/ParticleLines/PassForward2D.template")}
}
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 1c9e0e166435ac24eacc5a8f047aff75
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,11 @@
{
SubShader
{
${VFXInclude("Shaders/VFXParticleHeader.template")}
${VFXInclude("Shaders/ParticleLinesSW/PassSelection.template")}
${VFXInclude("Shaders/ParticleLinesSW/PassDepth.template"),IS_OPAQUE_PARTICLE}
${VFXInclude("Shaders/ParticleLinesSW/PassForward.template")}
${VFXInclude("Shaders/ParticleLinesSW/PassShadowCaster.template"),USE_CAST_SHADOWS_PASS}
${VFXIncludeRP("Templates/ParticleLinesSW/PassForward2D.template")}
}
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 349d67d896d33a54181e800b229b65ec
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,12 @@
{
SubShader
{
${VFXInclude("Shaders/VFXParticleHeader.template")}
${VFXIncludeRP("Templates/ParticleMeshesLit/PassSelection.template")}
${VFXIncludeRP("Templates/ParticleMeshesLit/PassDepth.template"),IS_OPAQUE_PARTICLE}
${VFXIncludeRP("Templates/ParticleMeshesLit/PassDepthNormal.template"),IS_OPAQUE_PARTICLE}
${VFXIncludeRP("Templates/ParticleMeshesLit/PassGBuffer.template")}
${VFXIncludeRP("Templates/ParticleMeshesLit/PassForward.template")}
${VFXIncludeRP("Templates/ParticleMeshesLit/PassShadowCaster.template"),USE_CAST_SHADOWS_PASS}
}
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 7edabebf429ea534a8a5bbdf10b327d1
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,14 @@
{
SubShader
{
Cull Off
${VFXInclude("Shaders/VFXParticleHeader.template")}
${VFXIncludeRP("Templates/ParticlePlanarPrimitivesLit/PassSelection.template")}
${VFXIncludeRP("Templates/ParticlePlanarPrimitivesLit/PassDepth.template"),IS_OPAQUE_PARTICLE}
${VFXIncludeRP("Templates/ParticlePlanarPrimitivesLit/PassDepthNormal.template"),IS_OPAQUE_PARTICLE}
${VFXIncludeRP("Templates/ParticlePlanarPrimitivesLit/PassGBuffer.template")}
${VFXIncludeRP("Templates/ParticlePlanarPrimitivesLit/PassForward.template")}
${VFXIncludeRP("Templates/ParticlePlanarPrimitivesLit/PassShadowCaster.template"),USE_CAST_SHADOWS_PASS}
}
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 571ac9b288ab81e4c9c3aad150d6cb3e
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,11 @@
{
SubShader
{
${VFXInclude("Shaders/VFXParticleHeader.template")}
${VFXInclude("Shaders/ParticleMeshes/PassSelection.template")}
${VFXInclude("Shaders/ParticleMeshes/PassDepth.template"),IS_OPAQUE_PARTICLE}
${VFXInclude("Shaders/ParticleMeshes/PassForward.template")}
${VFXInclude("Shaders/ParticleMeshes/PassShadowCaster.template"),USE_CAST_SHADOWS_PASS}
${VFXIncludeRP("Templates/ParticleMeshes/PassForward2D.template")}
}
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e1c9418ea80ea1f438a3b984293b811c
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,13 @@
{
SubShader
{
Cull Off
${VFXInclude("Shaders/VFXParticleHeader.template")}
${VFXInclude("Shaders/ParticlePlanarPrimitives/PassSelection.template")}
${VFXInclude("Shaders/ParticlePlanarPrimitives/PassDepth.template"),IS_OPAQUE_PARTICLE}
${VFXInclude("Shaders/ParticlePlanarPrimitives/PassForward.template")}
${VFXInclude("Shaders/ParticlePlanarPrimitives/PassShadowCaster.template"),USE_CAST_SHADOWS_PASS}
${VFXIncludeRP("Templates/ParticlePlanarPrimitives/PassForward2D.template")}
}
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: bf2c8e09bda2786468d6b49e9f5422bb
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,11 @@
{
SubShader
{
${VFXInclude("Shaders/VFXParticleHeader.template")}
${VFXInclude("Shaders/ParticlePoints/PassSelection.template")}
${VFXInclude("Shaders/ParticlePoints/PassDepth.template"),IS_OPAQUE_PARTICLE}
${VFXInclude("Shaders/ParticlePoints/PassForward.template")}
${VFXInclude("Shaders/ParticlePoints/PassShadowCaster.template"),USE_CAST_SHADOWS_PASS}
${VFXIncludeRP("Templates/ParticlePoints/PassForward2D.template")}
}
}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 677f238dc37937045b856e9468e21666
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,24 @@
#include "Packages/com.unity.render-pipelines.universal/Runtime/VFXGraph/Shaders/VFXLit.hlsl"
#ifndef VFX_SHADERGRAPH
void VFXGetURPLitData(out SurfaceData surfaceData, out InputData inputData, VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData, uint2 tileIndex)
{
float3 posRWS = VFXGetPositionRWS(i);
float4 posSS = i.VFX_VARYING_POSCS;
PositionInputs posInput = GetPositionInput(posSS.xy, _ScreenSize.zw, posSS.z, posSS.w, posRWS, tileIndex);
float alpha;
surfaceData = VFXGetSurfaceData(i, normalWS, uvData, alpha);
inputData = VFXGetInputData(i, posInput, surfaceData, normalWS);
}
void VFXGetURPLitData(out SurfaceData surfaceData, out InputData inputData, VFX_VARYING_PS_INPUTS i, float3 normalWS, const VFXUVData uvData)
{
VFXGetURPLitData(surfaceData, inputData, i, normalWS, uvData, uint2(0,0));
}
#endif
#include "Packages/com.unity.render-pipelines.universal/Runtime/VFXGraph/Shaders/VFXLitPixelOutput.hlsl"

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b182b2f5194c5574eb1983f8bb8b3d04
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,106 @@
#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:VFXURPLitVaryingsMacros}
#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
#define VFX_VARYING_SMOOTHNESS materialProperties.x
#if URP_MATERIAL_TYPE_METALLIC
#define VFX_VARYING_METALLIC materialProperties.y
#elif URP_MATERIAL_TYPE_SPECULAR
#define VFX_VARYING_SPECULAR specularColor
#elif URP_MATERIAL_TYPE_TRANSLUCENT
#define VFX_VARYING_THICKNESS materialProperties.y
#endif
#if USE_NORMAL_MAP
#define VFX_VARYING_NORMALSCALE 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
${VFXEnd}
${VFXBegin:VFXURPLitDeclareVaryings}
#if (VFX_NEEDS_COLOR_INTERPOLATOR && URP_USE_BASE_COLOR) || URP_USE_ADDITIONAL_BASE_COLOR
VFX_OPTIONAL_INTERPOLATION float4 color : COLOR0;
#endif
#if URP_MATERIAL_TYPE_SPECULAR
VFX_OPTIONAL_INTERPOLATION float3 specularColor : COLOR1;
#endif
#if URP_USE_EMISSIVE
VFX_OPTIONAL_INTERPOLATION float4 emissiveColor : COLOR2;
#endif
// x: smoothness
// y: metallic/thickness
// z: normal scale
// w: emissive scale
VFX_OPTIONAL_INTERPOLATION float4 materialProperties : TEXCOORD0;
${VFXEnd}
${VFXBegin:VFXURPLitFillVaryings}
#ifndef VFX_SHADERGRAPH
#ifdef VFX_VARYING_SMOOTHNESS
${VFXLoadParameter:{smoothness}}
o.VFX_VARYING_SMOOTHNESS = smoothness;
#endif
#if URP_MATERIAL_TYPE_METALLIC
#ifdef VFX_VARYING_METALLIC
${VFXLoadParameter:{metallic}}
o.VFX_VARYING_METALLIC = metallic;
#endif
#elif URP_MATERIAL_TYPE_SPECULAR
#ifdef VFX_VARYING_SPECULAR
${VFXLoadParameter:{specularColor}}
o.VFX_VARYING_SPECULAR = specularColor.rgb;
#endif
#elif URP_MATERIAL_TYPE_TRANSLUCENT
#ifdef VFX_VARYING_THICKNESS
${VFXLoadParameter:{thickness}}
o.VFX_VARYING_THICKNESS = thickness;
#endif
#endif
#if USE_NORMAL_MAP
#ifdef VFX_VARYING_NORMALSCALE
${VFXLoadParameter:{normalScale}}
o.VFX_VARYING_NORMALSCALE = normalScale;
#endif
#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
${VFXEnd}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 56fd66c66c0d99848be7cc4829d45942
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,144 @@
${VFXBegin:VFXPassForward}"UniversalForwardOnly"${VFXEnd}
${VFXBegin:VFXPassForward2D}"Universal2D"${VFXEnd}
${VFXBegin:VFXPassShadow}"ShadowCaster"${VFXEnd}
${VFXBegin:VFXPassVelocity}"MotionVectors"${VFXEnd}
${VFXBegin:VFXPassDepth}"DepthOnly"${VFXEnd}
${VFXBegin:VFXPassDepthDefine}
#if defined(WRITE_NORMAL_BUFFER)
#define SHADERPASS SHADERPASS_DEPTHNORMALSONLY
#else
#define SHADERPASS SHADERPASS_DEPTHONLY
#endif
${VFXEnd}
${VFXBegin:VFXPassShadowDefine}#define SHADERPASS SHADERPASS_SHADOWS${VFXEnd}
${VFXBegin:VFXPassVelocityDefine}#define SHADERPASS SHADERPASS_MOTION_VECTORS${VFXEnd}
${VFXBegin:VFXPassForwardAdditionalPragma}
#pragma multi_compile_fog
${VFXEnd}
${VFXBegin:VFXPassForwardLitAdditionalPragma}
#pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN
#pragma multi_compile _ _ADDITIONAL_LIGHTS
#pragma multi_compile_fragment _ _ADDITIONAL_LIGHT_SHADOWS
#pragma multi_compile_fragment _ _REFLECTION_PROBE_BLENDING
#pragma multi_compile_fragment _ _REFLECTION_PROBE_BOX_PROJECTION
#pragma multi_compile_fragment _ _SHADOWS_SOFT
#pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION
#pragma multi_compile_fragment _ _LIGHT_LAYERS
#pragma multi_compile_fragment _ _LIGHT_COOKIES
#pragma multi_compile _ _CLUSTERED_RENDERING
#pragma multi_compile_fog
#pragma multi_compile _ DEBUG_DISPLAY
${VFXEnd}
${VFXBegin:VFXPassDepthAdditionalPragma}
#pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT
${VFXEnd}
${VFXBegin:VFXPassGBufferAdditionalPragma}
#pragma multi_compile_fragment _ _REFLECTION_PROBE_BLENDING
#pragma multi_compile_fragment _ _REFLECTION_PROBE_BOX_PROJECTION
#pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT
#pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN
//See Lit.shader, these multi_compile aren't used in GBuffer
//#pragma multi_compile _ _ADDITIONAL_LIGHTS
//#pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION
#pragma multi_compile_fragment _ _SHADOWS_SOFT
#pragma multi_compile_fragment _ _LIGHT_LAYERS
${VFXEnd}
${VFXBegin:VFXShaderGraphFunctionsInclude}
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Packing.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/EntityLighting.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
${VFXEnd}
${VFXBegin:VFXPassDepthCommonFragmentURPLit}
#if VFX_PASSDEPTH == VFX_PASSDEPTH_MOTION_VECTOR
${VFXPassVelocityDefine}
#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SHADOW
${VFXPassShadowDefine}
#else
${VFXPassDepthDefine}
#endif
${VFXIncludeRP("VFXLit.template")}
#if defined(WRITE_NORMAL_BUFFER)
${SHADERGRAPH_PIXEL_CODE_DEPTHNORMALS}
#else
${SHADERGRAPH_PIXEL_CODE_DEPTHONLY}
#endif
#if VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION
int _ObjectId;
int _PassValue;
#elif VFX_PASSDEPTH == VFX_PASSDEPTH_PICKING
float4 _SelectionID;
#endif
#pragma fragment frag
void frag(ps_input i
#if USE_DOUBLE_SIDED
, bool frontFace : SV_IsFrontFace
#endif
#if VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL
#if defined(WRITE_NORMAL_BUFFER)
, out float4 outNormalBuffer : SV_Target0
#endif
#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION || VFX_PASSDEPTH == VFX_PASSDEPTH_PICKING
, out float4 outColor : SV_Target0
#endif
)
{
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
VFXTransformPSInputs(i);
${VFXComputeNormalWS}
#ifdef VFX_SHADERGRAPH
${VFXAdditionalInterpolantsPreparation}
#if defined(WRITE_NORMAL_BUFFER)
${SHADERGRAPH_PIXEL_CALL_DEPTHNORMALS}
#else
${SHADERGRAPH_PIXEL_CALL_DEPTHONLY}
#endif
float alpha = OUTSG.${SHADERGRAPH_PARAM_ALPHA};
#else
float alpha = VFXGetFragmentColor(i).a;
#if URP_USE_BASE_COLOR_MAP_ALPHA
alpha *= VFXGetTextureColor(VFX_SAMPLER(baseColorMap),i).a;
#endif
#endif
VFXClipFragmentColor(alpha,i);
#if defined(WRITE_NORMAL_BUFFER)
#ifdef VFX_SHADERGRAPH
#if HAS_SHADERGRAPH_PARAM_NORMALTS
float3 n = OUTSG.${SHADERGRAPH_PARAM_NORMALTS};
normalWS = mul(n,tbn);
#endif
#endif
VFXComputePixelOutputToNormalBuffer(normalWS, outNormalBuffer);
#endif
#if VFX_PASSDEPTH == VFX_PASSDEPTH_SELECTION
// We use depth prepass for scene selection in the editor, this code allow to output the outline correctly
outColor = float4(_ObjectId, _PassValue, 1.0, 1.0);
#elif VFX_PASSDEPTH == VFX_PASSDEPTH_PICKING
outColor = _SelectionID;
#elif VFX_PASSDEPTH == VFX_PASSDEPTH_ACTUAL
//void
#elif VFX_PASSDEPTH == VFX_PASSDEPTH_SHADOW
//void
#else
#error VFX_PASSDEPTH undefined
#endif
}
${VFXEnd}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 3d707c2c34101af48b8dc0b38ea50a1f
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,31 @@
SurfaceData surface;
surface = (SurfaceData)0;
surface.occlusion = 1.0f;
#if HAS_SHADERGRAPH_PARAM_ALPHA
surface.alpha = OUTSG.${SHADERGRAPH_PARAM_ALPHA};
VFXClipFragmentColor(surface.alpha, i);
#endif
#if HAS_SHADERGRAPH_PARAM_SMOOTHNESS
surface.smoothness = OUTSG.${SHADERGRAPH_PARAM_SMOOTHNESS};
#endif
#if HAS_SHADERGRAPH_PARAM_METALLIC
surface.metallic = OUTSG.${SHADERGRAPH_PARAM_METALLIC};
#endif
#if HAS_SHADERGRAPH_PARAM_BASECOLOR
surface.albedo = OUTSG.${SHADERGRAPH_PARAM_BASECOLOR};
#endif
surface.normalTS = float3(0, 0, 1);
#if HAS_SHADERGRAPH_PARAM_NORMALTS
float3 n = OUTSG.${SHADERGRAPH_PARAM_NORMALTS};
normalWS = mul(n,tbn);
#endif
#if HAS_SHADERGRAPH_PARAM_EMISSION
surface.emission = OUTSG.${SHADERGRAPH_PARAM_EMISSION};
#endif

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 4c72c43322666bd4dbe58de9815b0639
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant: