initial commit
This commit is contained in:
parent
6715289efe
commit
788c3389af
37645 changed files with 2526849 additions and 80 deletions
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: ce87f332afb5ca24ca5486d4bf5caa15
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a2a46415c7cedaf418d42532b73efd24
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
// 2D Pass
|
||||
Pass
|
||||
{
|
||||
Tags { "LightMode"=${VFXPassForward2D} }
|
||||
|
||||
HLSLPROGRAM
|
||||
#pragma target 4.5
|
||||
${VFXInclude("Shaders/ParticleHexahedron/PassBasicForwardCommon.template")}
|
||||
ENDHLSL
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 2d6519c74f7a7584685798d2431960f2
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 18a4907a4ab1eb24882f891e45c993db
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
// 2D Pass
|
||||
Pass
|
||||
{
|
||||
Tags { "LightMode"=${VFXPassForward2D} }
|
||||
|
||||
HLSLPROGRAM
|
||||
#pragma target 4.5
|
||||
${VFXInclude("Shaders/ParticleLines/PassForwardCommon.template")}
|
||||
ENDHLSL
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: f3ec7f3c24cdbba49986aa6478b5867f
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 792601c2ba0e2bc41986706670f378d4
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
// 2D pass
|
||||
Pass
|
||||
{
|
||||
Tags { "LightMode"=${VFXPassForward2D} }
|
||||
|
||||
HLSLPROGRAM
|
||||
#pragma target 4.5
|
||||
${VFXInclude("Shaders/ParticleLinesSW/PassForwardCommon.template")}
|
||||
ENDHLSL
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 526188e7c1965614aa36043f95c18390
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e3f2e22f0a32625498c3494d01930342
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
// Forward pass
|
||||
Pass
|
||||
{
|
||||
Tags { "LightMode"=${VFXPassForward2D} }
|
||||
|
||||
HLSLPROGRAM
|
||||
#pragma target 4.5
|
||||
${VFXInclude("Shaders/ParticleMeshes/PassForwardCommon.template")}
|
||||
ENDHLSL
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: ec0dd9ca912a8824590a57224cabd290
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 76287eaf161827c40994b1ba2f2af31f
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 77e942a6f106f7746bec78ed934de11a
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 23f922a362522a540b38b85bb2a5353f
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 75feef1dfebc40e4697124cb20d3f4fe
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a55128324929eba40884977cd5c1669e
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 286d87cbf8c19c749b69078915c9be88
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 268a144f637cfd343e3952cf770998d5
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 915f7a9ae9b5ab542b48b313dbf0489c
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 9e62eb3c33b50c54badb6f7cd6eb7a8c
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 93a7f042c0fafec41b13ea8cffc632c1
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
// Forward pass
|
||||
Pass
|
||||
{
|
||||
Tags { "LightMode"=${VFXPassForward2D} }
|
||||
|
||||
HLSLPROGRAM
|
||||
#pragma target 4.5
|
||||
${VFXInclude("Shaders/ParticlePlanarPrimitives/PassForwardCommon.template")}
|
||||
ENDHLSL
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 60e6c40c533c7ed4fbf6a90081f0e415
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 2eda2aff451e93441b6b576a8db601a3
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 37d26d1c1d738be4cba8c98b84ff0da3
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 341677e7847d0874abedb1fc1748b2cf
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e54411f64dc2beb43998b9727f62fa32
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5fa54a2ce1bced448b6bd9cfcac6c25d
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 9efeaf56a8f5826418111f0d669150c1
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 01ac01709d809ff46966b98b9ec1104d
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 7d07176ae506b05458500c8aa695d90e
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 4880ad95c4d23714986fc0ae33cc43f1
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
// Forward pass
|
||||
Pass
|
||||
{
|
||||
Tags { "LightMode"=${VFXPassForward2D} }
|
||||
|
||||
HLSLPROGRAM
|
||||
#pragma target 4.5
|
||||
${VFXInclude("Shaders/ParticlePoints/PassForwardCommon.template")}
|
||||
ENDHLSL
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 909b99072e12b6248b33e572f4c04095
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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")}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 6400081753199864e8880210a0c8ce24
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 16b454c8be4c1854fab1aa702812af16
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
SubShader
|
||||
{
|
||||
Cull Back
|
||||
|
||||
${VFXInclude("Shaders/VFXParticleHeader.template")}
|
||||
${VFXInclude("Shaders/ParticleDecals/PassSelection.template")}
|
||||
${VFXInclude("Shaders/ParticleDecals/PassForward.template")}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b8fd50c1927bb714b8fe5141cb40f34a
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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")}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1c9e0e166435ac24eacc5a8f047aff75
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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")}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 349d67d896d33a54181e800b229b65ec
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 7edabebf429ea534a8a5bbdf10b327d1
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 571ac9b288ab81e4c9c3aad150d6cb3e
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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")}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e1c9418ea80ea1f438a3b984293b811c
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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")}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: bf2c8e09bda2786468d6b49e9f5422bb
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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")}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 677f238dc37937045b856e9468e21666
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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"
|
||||
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b182b2f5194c5574eb1983f8bb8b3d04
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 56fd66c66c0d99848be7cc4829d45942
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 3d707c2c34101af48b8dc0b38ea50a1f
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 4c72c43322666bd4dbe58de9815b0639
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Loading…
Add table
Add a link
Reference in a new issue