150 lines
4.3 KiB
HLSL
150 lines
4.3 KiB
HLSL
|
#ifndef UNIVERSAL_PARTICLES_INPUT_INCLUDED
|
||
|
#define UNIVERSAL_PARTICLES_INPUT_INCLUDED
|
||
|
|
||
|
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
|
||
|
|
||
|
struct AttributesParticle
|
||
|
{
|
||
|
float4 positionOS : POSITION;
|
||
|
half4 color : COLOR;
|
||
|
|
||
|
#if defined(_FLIPBOOKBLENDING_ON) && !defined(UNITY_PARTICLE_INSTANCING_ENABLED)
|
||
|
float4 texcoords : TEXCOORD0;
|
||
|
float texcoordBlend : TEXCOORD1;
|
||
|
#else
|
||
|
float2 texcoords : TEXCOORD0;
|
||
|
#endif
|
||
|
|
||
|
#if !defined(PARTICLES_EDITOR_META_PASS)
|
||
|
float3 normalOS : NORMAL;
|
||
|
float4 tangentOS : TANGENT;
|
||
|
#endif
|
||
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||
|
};
|
||
|
|
||
|
struct VaryingsParticle
|
||
|
{
|
||
|
float4 clipPos : SV_POSITION;
|
||
|
float2 texcoord : TEXCOORD0;
|
||
|
half4 color : COLOR;
|
||
|
|
||
|
#if defined(_FLIPBOOKBLENDING_ON)
|
||
|
float3 texcoord2AndBlend : TEXCOORD5;
|
||
|
#endif
|
||
|
|
||
|
#if !defined(PARTICLES_EDITOR_META_PASS)
|
||
|
float4 positionWS : TEXCOORD1;
|
||
|
|
||
|
#ifdef _NORMALMAP
|
||
|
half4 normalWS : TEXCOORD2; // xyz: normal, w: viewDir.x
|
||
|
half4 tangentWS : TEXCOORD3; // xyz: tangent, w: viewDir.y
|
||
|
half4 bitangentWS : TEXCOORD4; // xyz: bitangent, w: viewDir.z
|
||
|
#else
|
||
|
half3 normalWS : TEXCOORD2;
|
||
|
half3 viewDirWS : TEXCOORD3;
|
||
|
#endif
|
||
|
|
||
|
#if defined(_SOFTPARTICLES_ON) || defined(_FADING_ON) || defined(_DISTORTION_ON)
|
||
|
float4 projectedPosition: TEXCOORD6;
|
||
|
#endif
|
||
|
|
||
|
#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
|
||
|
float4 shadowCoord : TEXCOORD7;
|
||
|
#endif
|
||
|
|
||
|
half3 vertexSH : TEXCOORD8; // SH
|
||
|
#endif
|
||
|
|
||
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||
|
UNITY_VERTEX_OUTPUT_STEREO
|
||
|
};
|
||
|
|
||
|
struct AttributesDepthOnlyParticle
|
||
|
{
|
||
|
float4 vertex : POSITION;
|
||
|
|
||
|
#if defined(_ALPHATEST_ON)
|
||
|
half4 color : COLOR;
|
||
|
|
||
|
#if defined(_FLIPBOOKBLENDING_ON) && !defined(UNITY_PARTICLE_INSTANCING_ENABLED)
|
||
|
float4 texcoords : TEXCOORD0;
|
||
|
float texcoordBlend : TEXCOORD1;
|
||
|
#else
|
||
|
float2 texcoords : TEXCOORD0;
|
||
|
#endif
|
||
|
#endif
|
||
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||
|
};
|
||
|
|
||
|
struct VaryingsDepthOnlyParticle
|
||
|
{
|
||
|
float4 clipPos : SV_POSITION;
|
||
|
|
||
|
#if defined(_ALPHATEST_ON)
|
||
|
float2 texcoord : TEXCOORD0;
|
||
|
half4 color : COLOR;
|
||
|
|
||
|
#if defined(_FLIPBOOKBLENDING_ON)
|
||
|
float3 texcoord2AndBlend : TEXCOORD5;
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||
|
UNITY_VERTEX_OUTPUT_STEREO
|
||
|
};
|
||
|
|
||
|
struct AttributesDepthNormalsParticle
|
||
|
{
|
||
|
float4 vertex : POSITION;
|
||
|
|
||
|
#if defined(_ALPHATEST_ON)
|
||
|
half4 color : COLOR;
|
||
|
#endif
|
||
|
|
||
|
#if defined(_ALPHATEST_ON) || defined(_NORMALMAP)
|
||
|
#if defined(_FLIPBOOKBLENDING_ON) && !defined(UNITY_PARTICLE_INSTANCING_ENABLED)
|
||
|
float4 texcoords : TEXCOORD0;
|
||
|
float texcoordBlend : TEXCOORD1;
|
||
|
#else
|
||
|
float2 texcoords : TEXCOORD0;
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
float3 normal : NORMAL;
|
||
|
float4 tangent : TANGENT;
|
||
|
|
||
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||
|
};
|
||
|
|
||
|
|
||
|
struct VaryingsDepthNormalsParticle
|
||
|
{
|
||
|
float4 clipPos : SV_POSITION;
|
||
|
|
||
|
#if defined(_ALPHATEST_ON)
|
||
|
half4 color : COLOR;
|
||
|
#endif
|
||
|
|
||
|
#if defined(_ALPHATEST_ON) || defined(_NORMALMAP)
|
||
|
float2 texcoord : TEXCOORD0;
|
||
|
|
||
|
#if defined(_FLIPBOOKBLENDING_ON)
|
||
|
float3 texcoord2AndBlend : TEXCOORD5;
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#if defined(_NORMALMAP)
|
||
|
float4 normalWS : TEXCOORD2; // xyz: normal, w: viewDir.x
|
||
|
float4 tangentWS : TEXCOORD3; // xyz: tangent, w: viewDir.y
|
||
|
float4 bitangentWS : TEXCOORD4; // xyz: bitangent, w: viewDir.z
|
||
|
#else
|
||
|
float3 normalWS : TEXCOORD2;
|
||
|
float3 viewDirWS : TEXCOORD3;
|
||
|
#endif
|
||
|
|
||
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||
|
UNITY_VERTEX_OUTPUT_STEREO
|
||
|
};
|
||
|
|
||
|
#endif // UNIVERSAL_PARTICLES_INPUT_INCLUDED
|